CSS在IE6, IE7, IE8, Firefox中的特定使用(Hack)

不同的浏览器对CSS的解释都有一点出入,特别是padding, line-height这些要细微控制的地方,下面的hack基本可以解决这个问题:

  • 在属性前加下划线(_),那么此属性只会被IE6解释
  • 在属性前加星号(*),此属性只会被IE7解释
  • 在属性值后面加"\9",表示此属性只会被IE8解释

例如:

#menu {  line-height: 23px; }/* firefox 浏览器实行这句定义 */ 
#menu 
{ line-height: 26px\9; }/*ie6,ie7,ie8 这句定义主要尖对IE8来hack*/
#menu 
{ *line-height: 23px; }/*ie6,ie7 这句定义主要尖对IE7来hack*/
#menu 
{ _line-height: 23px; }/*ie6 浏览器优先实行这句定义*/
或者写成一句,注意顺序
#menu 
{ line-height:23px; line-height: 26px\9; *line-height: 23px; _line-height:23px; }
或者
* html #menu 
{ line-height: 23px; } /* IE6 浏览器实行这句定义 */ 
*+html #menu 
{ line-height: 23px; }/* IE7 浏览器实行这句定义*/
原文地址:https://www.cnblogs.com/asyuras/p/1497730.html