CSS属性前的星号用途


101

以下摘自Yahoo CSS重置。有人可以解释一下星号的目的吗?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}

Answers:


117

它是针对Internet Explorer 7或更低版​​本的特定于浏览器的CSS hack。

*适当的价值

尽管Internet Explorer 7在属性名称带有下划线或连字符前缀时纠正了其行为,但其他非字母数字字符前缀仍与IE6中的对待一样。因此,如果在属性名称之前添加非字母数字字符(例如星号(*)),则该属性将在IE中而不是在其他浏览器中应用。与使用连字符和下划线方法不同,CSS规范不保留星号作为前缀,因此,随着CSS规范的发展,使用这种hack可能会导致意外行为。

*属性:值应用IE 7及更低版本中的属性值。在将来的版本中可能会或可能不会。警告:这使用了无效的CSS。

来自:http : //www.javascriptkit.com/dhtmltutors/csshacks3.shtml



1

除IE之外的所有浏览器都忽略规则。它被称为明星黑客。我认为IE7将忽略标准模式下的规则。

在这种情况下,将设置字体规则,然后为IE 6(有时是7)覆盖字体规则。


这不是star-html hack。那进入选择器,是有效的CSS。
bobince

@bobince Star Hack和Star HTML Hack是两个不同的事物:en.wikipedia.org/wiki/CSS_filter#Star_hacken.wikipedia.org/wiki/CSS_filter#Star_HTML_hack
Mike Covington


0

这是一个CSS hack,该规则仅适用于IE7及以下版本。

我不建议您使用它,但是有更好的方法可以解决IE不兼容问题。


0

放置这样的字符是让IE 6使用样式的属性,同时将其隐藏在更多“理智”的浏览器中的一种技巧/解决方法。

这里

简而言之,Internet Explorer CSS解析器在尝试发现属性名称时过于激进,实际上会忽略前导的非字母数字字符。从我的测试来看,至少从IE5开始似乎是这种情况。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.