我在一个项目中发现了这个CSS代码:
html, body { :)width: 640px;}
Run Code Online (Sandbox Code Playgroud)
我已经使用CSS很长一段时间了,但我之前从未见过这个":)"代码.这是什么意思还是只是一个错字?
rev*_*evo 278
来自javascriptkit.com上的一篇文章,它适用于IE 7及更早版本:
如果
*
在属性名称之前添加非字母数字字符(如星号()),则该属性将应用于IE而不是其他浏览器.
还有<= IE 8的黑客攻击:
div {
color: blue; /* All browsers */
color: purple\9; /* IE8 and earlier */
*color: pink; /* IE7 and earlier */
}
Run Code Online (Sandbox Code Playgroud)
然而,这不是一个好主意,他们不会验证.您可以随时使用条件注释来定位特定版本的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]-->
Run Code Online (Sandbox Code Playgroud)
但是对于那些想要真正看到黑客的人,请在最新版本的IE中打开这个页面.然后通过执行a进入开发人员模式F12.在仿真部分(ctrl+ 8)中将文档模式更改为7
并查看会发生什么.
页面中使用的属性是:)font-size: 50px;
.
Sal*_*n A 171
它看起来像是针对IE7和早期浏览器的CSS黑客攻击.虽然这是无效的CSS,浏览器应该忽略它,但IE7及更早版本将解析并遵守此规则.以下是此黑客行动的一个示例:
CSS
body {
background: url(background.png);
:)background: url(why-you-little.png);
}
Run Code Online (Sandbox Code Playgroud)
IE8(忽略规则)
IE7(适用规则)
请注意,它不一定是笑脸; BrowserHacks提到:
这些字符的任意组合: [在属性名称之前工作] InternetExplorer≤7
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |