笑脸“:)”在CSS中意味着什么?
我在一个项目中发现了这个CSS代码:
html, body { :)width: 640px;}
我已经使用CSS很长一段时间了,但我从来没有见过这个“:)”的代码。 这是否意味着什么,还是只是一个错字?
从javascriptkit.com上的一篇文章 ,这适用于IE 7和更早版本:
如果在属性名称之前立即添加非字母数字字符(如星号(
*
)),则该属性将应用于IE中,而不会应用于其他浏览器。
也有一个黑客<= IE 8 :
div { color: blue; /* All browsers */ color: purple\9; /* IE8 and earlier */ *color: pink; /* IE7 and earlier */ }
然而,这不是一个好主意,他们不validation。 您可以随时使用条件注释来定位特定版本的IE :
<!--[if lte IE 8]><link rel="stylesheet" href="ie-8.css"><![endif]--> <!--[if lte IE 7]><link rel="stylesheet" href="ie-7.css"><![endif]--> <!--[if lte IE 6]><link rel="stylesheet" href="ie-6.css"><![endif]-->
但是对于那些想真正看到黑客攻击的人,请在IE浏览器的最新版本中打开这个页面 。 然后通过执行F12进入开发者模式。 在仿真部分( ctrl + 8 )将文档模式更改为7
,看看会发生什么。
在页面中使用的属性是:)font-size: 50px;
。
它看起来像一个CSS攻击目标IE7和更早的浏览器。 虽然这是无效的CSS和浏览器应该忽略它,但IE7和更早版本将parsing和遵守这个规则。 下面是这个黑客行动的例子:
CSS
body { background: url(background.png); :)background: url(why-you-little.png); }
IE8(忽略规则)
IE7(适用规则)
请注意,它不一定是一个笑脸, BrowserHacks提到:
这些字符的任何组合:
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |
[属性名称将工作之前] Internet Explorer≤7
GAH热狗站的例子就在这里 。