网站Qq.com有一个带有两个填充声明的规则集,看起来有点奇怪。我的问题是,11px\0
部分做了什么?这是否与覆盖第一个填充声明有关?我理解在这些情况下使用斜杠:/ (forward slash) in css style declarations,但我从未见过这样的东西。
.suggestion .s_title {
padding: 3px 0 1px 11px;
padding: 4px 0 1px 11px\0;
color: #a0a3a8;
font-size: 12px;
line-height: 18px;
}
答案 0 :(得分:4)
“反斜杠零”是针对当前规则的针对IE8的css hack。这可能是一件可怕的事情,除非没有其他选择。会发生什么情况是IE8会错误地认为这是一个有效的规则,而其他浏览器则不适用,留下一个混乱规则:
.my-dirty-rule-for-ie-8-only { margin-bottom: 5px\0; }
对于此规则集,这意味着仅当用户使用IE8显示您的页面时,第二个填充才会通过覆盖第一个填充来生效。
从开发者的角度来看,应该不惜一切代价避免使用css hacks。你真的不想处理针对特定浏览器的规则,因为它会从你堕落的那一刻起永远困扰你。
答案 1 :(得分:0)
正如Harry指出的那样,这是一个IE特定的黑客攻击。您可以使用\0
部分指定特定IE版本的声明。有关它的更多信息:
http://codemug.com/html/css-hacks-for-ie6ie7ie8ie9-and-ie10/ 和这里 http://mynthon.net/howto/-/webdev/CSS-big-list-of-css-hacks.txt (见:24。IE9黑客攻击)