什么*显示在CSS中意味着什么?

Jef*_*eff 7 css cross-browser

可能重复:
明星先前属性在CSS中意味着什么?

我在浏览跨浏览器支持显示时遇到了这个:内联块...

selector {
  display: -moz-inline-box;
  display: inline-block;
  zoom: 1;
  *display: inline;
}
Run Code Online (Sandbox Code Playgroud)

*显示有什么作用?

链接自:http: //www.aarongloege.com/blog/web-development/css/cross-browser-inline-block/

Ble*_*der 8

*property: value;
Run Code Online (Sandbox Code Playgroud)

这是一个黑客,所以我不建议你使用它.这样表示的样式仅由IE 7及更低版本解释,因此其他浏览器完全忽略这些样式.

它是非标准(或有效)的CSS,但它有时用于击败IE提交.


cla*_*uzy 6

正如其他人所说,这是IE7及以下的黑客攻击

但是这一个,你给出的例子是一个特定的黑客,所以不像你收到的评论我不建议删除它..你可以移动它或删除它后,你读它并不需要它; )

顺便说一句,我同意-moz-inline-box可能不再需要了,它适用于旧版本的Firefox

selector {
  display: -moz-inline-box;
  display: inline-block;
  zoom: 1;
  *display: inline;
}
Run Code Online (Sandbox Code Playgroud)

是一个特定的hack让IE6/7将块级元素显示为内联块.虽然IE inline-block从v5.5开始就支持它,但它本身并没有在块级元素上这样做

因此,在这种情况下,您需要做的是给出元素"layout"(zoom: 1;)并在此display: inline之后提供它.

现在display:inline-block还提供了一个元素布局,因此如果将display-inline规则移除到单独的规则集(在条件规则或黑客规则中),则不再需要使用zoom: 1;

我喜欢这个(出于演示目的)并且因为内联块是如此虚拟有用,并且因为它更短是

selector {
  display: inline-block;
}


selector {
  display: inline !ie7;
}
Run Code Online (Sandbox Code Playgroud)

!ie7是在做相同*的显示属性之前,它的喂养规则,IE7和下面的-你可以使用*第二个规则版本太多,但是IE7清楚,反正我这是一个黑客,谁是!对于.

如果您有IE7及以下的特定条件样式表,您可以简单地将第二个规则放入其中 - 没有任何*ie7;)

selector {
  display: inline;
}
Run Code Online (Sandbox Code Playgroud)

因为IE浏览器仍然会读取第一规则集,并得到它的hasLayout的触发,true通过inline-block在那里,你不需要zoom

你提到的引用hack是受欢迎的,因为它将所有部分保留在一个规则集中,但zoom:1在这种情况下需要inline-block设置hasLayout,如果它与其他display属性在同一规则集中