因为各大浏览器十分IE涉猎器对站点标准赞成情况不一,导致标准的网页在各个浏览器中的显露纷歧,因此,妄想各涉猎器兼容性标题问题成为了前端工程师最必要的工作之一,而所谓的hack技能则是前端启示中必用的。
CSS hack的写法有不少种,此中,特殊符号的运用最为普遍,也最为简练,上面一一引见了特殊标志类型的CSS hack妙技:
1、反斜线(\)
适用阅读器:IE/Mac
反斜线(\)hack操作了IE/Mac的一个破绽。以\*/结束的css 批注在IE/Mac上是不粗略封锁的,所以那些需要在IE/Mac上被疏忽的语句可以放在这种表达后头。
/* CSS注释:在IE Mac上忽略上面的语句 \*/
selector { ...styles... }
/* 疏忽完结 */
2、下划线(_)
合用阅读器:IE6及其下列版本
IE 6 及如下的版本可以识别带有下划线前缀的属性,而其它阅读器会忽略它。于是,一个属性前面加上下划线也许连字符,就成为了IE6及如下版本浏览器的专有属性。
#elem {
width: [W3C Model Width];
_width: [BorderBox Model];
}
PS:这个hack利用阅读器的马脚使用了有效的CSS,因而不保举使用。
3、星号(*)
实用阅读器:IE7以下版本
除了下划线和连字符,版本7及以下的IE可以识别以非字母字符为前缀的属性,而其它浏览器会忽略。
#elem {
width: [W3C Model Width];
*width: [BorderBox Model];
}
PS:这个hack行使阅读器的裂缝使用了无效的CSS,因而不推荐使用。
4、星号 HTML(* html)
适用涉猎器:IE4-6
HTML元素是W3C尺度DOM的根元素,然则IE 4至6的版本中另有一个隐秘的父元素。完全兼容的阅读器会疏忽这个* html抉择器,但IE4-6却会对它正常措置。
* html p {font-size: 5em; }
PS:这个HACK使用了纯粹有效的CSS。
5、星号加号(*+)
合用浏览器:IE7
*:first-child+html p { font-size: 5em; }
梗概:
*+html p { font-size: 5em; }
PS:只在IE7尺度模子里工作畸形,在神奇模式下不能用。同时,也被IE8的兼容模式(相称于IE7的标准模式)所支持。它也使用了有效的CSS。
6、子决议器(>)
适用涉猎器: IE6以上版本及非IE阅读器
IE6和早期的版本不赞成“子决定器”(>),我们可以垄断这个为其它浏览器指定特其他划定。
html > body p { color: blue; }
7、子抉择器加注解(>/**/)
实用涉猎器: IE7以上版本及非IE涉猎器
尽管IE7赞成对子决定器,但经由过程以下hack方法也可以把IE7也破除。当一个空的表述紧跟在子选择器的后背重复的时辰,IE7会不识别背面的划定,就和较早版本的涉猎器异样。