笑脸“:)”在CSS中意味着什么?

问题描述 投票:315回答:2

我在一个项目中发现了这个CSS代码:

html, body { :)width: 640px;}

我已经使用CSS很长一段时间了,但我之前从未见过这个“:)”代码。这是什么意思还是只是一个错字?

css css-hack
2个回答
274
投票

来自article at javascriptkit.com,适用于IE 7及更早版本:

如果在属性名称之前添加非字母数字字符(如星号(*)),则该属性将应用于IE而不是其他浏览器。

还有<= IE 8的黑客攻击:

div {
  color: blue;      /* All browsers */
  color: purple\9;  /* IE8 and earlier */
 *color: pink;      /* IE7 and earlier */
}

然而,这不是一个好主意,他们不会验证。您可以随时使用Conditional comments来定位特定版本的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中打开this page。然后通过执行F12进入开发人员模式。在仿真部分(ctrl + 8)将文档模式更改为7,看看会发生什么。

该页面中使用的属性是:)font-size: 50px;


169
投票

它看起来像是针对IE7和早期浏览器的CSS黑客攻击。虽然这是无效的CSS,浏览器应该忽略它,IE7和更早版本将解析并遵守这一规则。以下是此黑客行动的一个示例:

CSS

body {
    background: url(background.png);
    :)background: url(why-you-little.png);
}

IE8(忽略规则)

IE7(适用规则)

请注意,它不一定是笑脸; BrowserHacks提到:

这些字符的任意组合: ! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > | [在属性名称工作之前] InternetExplorer≤7


The GAH hot dog stand example is here

© www.soinside.com 2019 - 2024. All rights reserved.