我有一个默认为“宽度:100%”的INPUT元素。这导致它将其下的其他元素向下推到下一行。为了临时解决这个问题,我在这个元素上添加了一个内联样式属性,如下所示:为什么这个“width:auto”风格在两个浏览器中都作为内联样式工作,但只在IE中移动到外部样式表时才会中断?
其中工作得很好。现在,我要回过头来清理临时修复,并将所有样式从样式属性移到外部样式表中。当我将这个特殊的“width:auto”风格移动到样式表中时,它在Firefox中看起来仍然很好,但是在IE中忽略它,并且默认再次显示“width:100%”,这会再次触发它旁边的元素。
IE网页开发工具栏不会告诉我样式来自哪里,因此很难诊断正在发生的事情。我最好的猜测是在IE中还有其他优先级,但我不知道它会是什么。我发誓我试图右键单击IE开发人员栏中,但我想不是 - 当我在IE浏览器的“宽度:100%”上做“跟踪样式”时,我得到一个弹出窗口,上面写着“1”。没有匹配“,但是在Firefox中,它显示100%从上面的元素上的选择器流出,就像”#outer foo bar INPUT“一样,它覆盖了这个INPUT。我错误地认为直接在INPUT元素上的“#id”比“#id foo bar INPUT”具有更高的特异性,但我猜浏览器对此不同意。无论哪种方式,这都得到了我的问题的根源,所以感谢评论。我希望有一种方式,以促进一个答案评论...
宽度:自动;宽度之前或之后:100%;在文件中?你不知道在CSS宽度:100%;来自哪里?即使Firefox正确渲染它,Firebug也应该告诉你它在哪里。 – 2008-12-10 05:30:36