* display在CSS中是什么意思? [重复]

问题描述

|                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

*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
,然后他们对其进行处理,而其他人则不会。