问题描述
|
这个问题已经在这里有了答案:
解决方法
*property: value;
这是一个hack,所以我不建议您使用它。如此表示的样式仅由IE 7及以下版本解释,因此其他浏览器会完全忽略这些样式。
它是非标准(或有效)的CSS,但有时会被用来击败IE。
,正如其他人所说,这是针对IE7及以下版本的黑客
但是,您给出的示例是特定的hack,因此与您收到的评论不同,我不建议您删除它。在阅读完此内容后,您可以移动或删除它,不要\'不需要它;)
顺便说一句,我同意-moz-inline-box可能不再需要,它适用于旧版本的Firefox
selector {
display: -moz-inline-box;
display: inline-block;
zoom: 1;
*display: inline;
}
是使IE6 / 7将块级元素显示为嵌入式块的特定技巧。尽管IE自v5.5起已支持inline-block
,但它本身并未在块级元素上支持
因此,在这种情况下,您需要给元素\“ layout \”(zoom: 1;
),然后再向其输入display: inline
。
现在,ѭ5还提供了元素布局,因此,如果将display-inline
规则删除到单独的规则集中(在条件规则或黑名单规则中),则不再需要使用zoom: 1;
为此,我偏爱的技巧(出于演示目的)&因为内联块非常破折号有用,&因为它的较短性是
selector {
display: inline-block;
}
selector {
display: inline !ie7;
}
!ie7
的作用与display属性之前的*
相同,它将规则提供给IE7及以下版本-您也可以在第二条规则中使用*
版本,但是!ie7对我来说很清楚\ hack,以及它的目的。
如果您有针对IE7及以下版本的特定的,有条件的样式表,则只需在其中输入第二条规则-无需添加*
或ie7
;)
selector {
display: inline;
}
因为IE仍然会读取第一个规则集,并通过其中的inline-block
将其hasLayout触发为true
,所以您不需要zoom
您提到的引用的hack很流行,因为它将所有部分都保留在一个规则集中,但是在这种情况下需要使用“ 18”,因为如果“ 2”与另一个“ 20”属性位于同一规则集中,则“ 2”将无法设置hasLayout
,前面的“ 10”是IE浏览器的黑客,特别是版本和7及以下版本。您可能还会看到_display
,其中前面的_
是IE 6及更低版本的hack。带有这些规则的CSS规则仅适用于那些版本,而被其他浏览器忽略。
,这是IE 7的黑客。该属性仅适用于IE 7。
我总是参考Paul Irish撰写的特定于浏览器的CSS黑客综合清单。
,补充其他问题:
CSS规范指出,任何无法识别的属性都应丢弃。这是由于将来的兼容性。
因此,对于大多数浏览器来说,“ 24”不是有效的属性,它们只会跳过。
IE7(出于我不知道的原因)将*property
识别为property
,然后他们对其进行处理,而其他人则不会。