为什么两次声明相同的CSS参数,但第二个用星号声明?

时间:2012-08-30 12:01:22

标签: css css3pie

  

可能重复:
  CSS reset - purpose of asterik within a style

我正在阅读HTML5BoilerPlate的CSS样式,我遇到了这个不熟悉的行:

button, input, select, textarea { 
  font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; 
}

特别是第二个**** vertical-align ***,为什么要打两次并在它前面放一个星号。

如果有人知道该技术的名称或为何使用该技术,那将是一个很好的帮助

谢谢!

-Adrian

4 个答案:

答案 0 :(得分:0)

它是一个nasty hack,可用于定位旧版本的IE(其他浏览器忽略无效的星号前缀值)。绝对不是一个好主意,使用IE条件样式表或类似技术要好得多。

答案 1 :(得分:0)

这是Internet Explorer浏览器的CSS黑客攻击:


* property:value

如果在属性名称前面添加非字母数字字符(如星号(*)),则该属性将应用于IE而不是其他浏览器。与连字符和下划线方法不同,CSS规范不对星号作为前缀进行保留,因此随着CSS规范的发展,使用此黑客可能会导致意外行为。

property:value在IE 7及更低版本中应用属性值。它可能会或可能不会在未来的版本中工作。警告:这使用无效的CSS。

来自here

答案 2 :(得分:0)

这是一个css hack,用于定位IE7 browser

有关详情,请参阅How to Target IE6, IE7, and IE8 Uniquely with 4 Characters

答案 3 :(得分:0)

这是一个IE6黑客攻击。如果你把*放在CSS属性的前面,它只会被IE6读取。由于IE6的使用量现已降至世界的1%,我们可以忘记这个黑客(除非你住在中国)