Css 做重要信息:IE6中不起作用?

Css 做重要信息:IE6中不起作用?,css,cross-browser,internet-explorer-6,Css,Cross Browser,Internet Explorer 6,做!重要信息在IE6中不起作用?如果我们也需要IE6兼容性,那么我们不应该使用!重要信息?IE6支持!重要的是当规则与!“重要”是选择器中该属性的最后一条规则 这听起来有点混乱,但是如果你声明了一个!重要高度,它必须是给定选择器中“高度”的最后一个声明 这样考虑这些例子: #selector { height: 100px; height: 150px !important; } Result: All browsers: 150px; #selector { height: 100px; h

!重要信息
在IE6中不起作用?如果我们也需要IE6兼容性,那么我们不应该使用
!重要信息

IE6支持!重要的是当规则与!“重要”是选择器中该属性的最后一条规则

这听起来有点混乱,但是如果你声明了一个!重要高度,它必须是给定选择器中“高度”的最后一个声明

这样考虑这些例子:

#selector { height: 100px; height: 150px !important; }
Result: All browsers: 150px;

#selector { height: 100px; height: 150px !important; }
td#selector { height: 200px; }
Result: All browsers: 150px;

#selector { height: 100px; height: 150px; }
td#selector { height: 70px; height: 200px !important; }
Result: All browsers: 200px;

#selector { height: 100px !important; height: 150px; }
Result: All modern browsers but ie6: 100px; ie6: 150px;

#selector { height: 100px !important; height: 150px; }
td#selector { height: 200px; }
Result: All modern browsers but ie6: 100px; ie6: 200px;

#selector { height: 100px; height: 150px; }
td#selector { height: 70px !important; height: 200px; }
Result: All modern browsers but ie6: 70px; ie6: 200px;
ie6所做的是将每个选择器的“height”值解析为选择器中存在的最后一个“height”声明(其他规则可能适用,但我相信这是您的标准情况)。然后,它会根据以下条件从所有这些中选择最具体的“高度”!重要和选择器专用性规则。它实际上忽略了不是选择器中最后一个的“height”声明

其他浏览器将考虑“!重要提示:在分析每个选择器的“高度”值时,在比较基于的选择器之前!重要和特殊性规则

这样做的一个“好处”是,其他所有合理的浏览器都将使用您的“重要”样式,而ie6将选择该选择器中的最后一个规则声明

不过,使用ie6特定的样式表会更好,除非只有非常少的ie6调整,并且希望css将每个调整都作为ie6漏洞进行注释

心理榜样 想象一下,选择一个CSS规则就是1)获取与元素匹配的所有规则,2)决定使用这些规则中的哪一个。假设内联样式标记只是另一个选择器,除非我另有说明

在其他浏览器中,如果要获取某个元素的“高度”,它将大致执行以下操作:

  • 对于每个选择器,选择最后一个!重要高度(如果有),否则仅为最后一个高度

  • 选择最具体的选择器,其中所选的“高度”为!重要高度,否则为内联样式高度,否则为最特定的选择器

  • 在ie6中,它大致做到:

  • 为每个选择器选择最后一个高度

  • 选择最具体的选择器,其中所选的“高度”为!重要高度,否则为内联样式高度,否则为最特定的选择器


  • @老实说,在726个以上的问题中,你还没有学会谷歌吗<代码>ie6重要信息给出了第一个答案的链接。你可以通过简单的谷歌搜索来减少一半的问题。一个你在这方面有困难的具体例子将有助于提供更全面的答案,尽管Graphain已经涵盖了最明显的问题。如果谷歌没有给出好的答案,那么我在这里问你。若谷歌能找到,并不意味着这个问题不应该在这里提出。我从人们的答案中获得了很多知识,所以即使是同一个主题,谷歌搜索中也有很多文章。对我来说,SO的回答多次给了我比任何博客上的任何文章更好的答案。你问“Dos!important not works in ie6”,谷歌上的一分钟会让你找到几十篇文章,说明它的漏洞。为什么不把你的问题说得更具体一些,或者粘贴一个你不懂的描述,这样其他人就可以解释它对你说了什么?@Mike Tierney-我只是想知道IE 6支持什么!重要与否,或者它以特定的方式提供支持。在这一页提到“部分”的支持!在IE6中很重要。我想知道什么是“部分”支持。在这个页面上没有这方面的信息。这有点不准确。只要它不是此选择器中为该属性声明的最后一条规则,它就可以工作。在本例中,颠倒两个
    高度
    规则,您将看到,实际上,高度是
    100px
    (即使不同的选择器通常会覆盖它)。实际上,这更多地与规则的解释方式有关——最后一个规则通常获胜(许多黑客都基于此原则).谢谢你,约翰-我想我也这么想了,但我只是在抄袭谷歌的答案。我已经更新了我的答案,以反映并可能进一步澄清它。对其他规则的属性进行级联和重写怎么样。它们位于不同的选择器中,但嵌套。我的示例已经介绍了这一点。我进一步澄清了它是如何选择规则的。请让我知道这是否能解决问题。基本上有两个问题:1)每个选择器选择哪个规则,2)选择哪个选择器(基于1。)2)对于所有浏览器都是相同的,但1)对于ie6不同(对于选择器,它并不总是选择!重要的规则,这意味着选择器可能不会被选择)。