CSS hack 是一种在不同浏览器上应用不同的样式规则的方法。以下是一些常见的 CSS hack 方式:
- 浏览器前缀:不同浏览器对一些 CSS 属性可能有不同的前缀,可以使用这些前缀来针对特定浏览器应用样式。
-webkit-border-radius: 10px; /* Chrome, Safari, Opera */ -moz-border-radius: 10px; /* Firefox */ border-radius: 10px; /* 标准语法 */
- IE 条件注释:使用条件注释可以针对不同版本的 IE 浏览器应用样式。
- 选择器 hack:通过特定的选择器来应用样式。
/* 仅在 IE6 上应用样式 */ * html #element { property: value; } /* 仅在 IE7 上应用样式 */ *:first-child+html #element { property: value; } /* 仅在 IE7-IE8 上应用样式 */ @media \0screen\,screen\9 { #element { property: value; } } /* 仅在 IE6-IE8 上应用样式 */ @media screen\9 { #element { property: value; } }
- 属性值 hack:通过属性值的不同来应用样式。
/* 仅在 IE6 上应用样式 */ #element { _property: value; } /* 仅在 IE6-IE7 上应用样式 */ #element { *property: value; } /* 仅在 IE7-IE8 上应用样式 */ #element { *+property: value; } /* 仅在 IE8 上应用样式 */ #element { property: value\0/; }
需要注意的是,CSS hack 是一种常见的做法,但并不推荐使用。尽量使用标准的 CSS 方法编写兼容性样式,并通过现代的浏览器支持来解决兼容性问题。