* css黑客不再在ie8工作?

时间:2010-03-25 10:59:46

标签: html css

好的,所以我想让我的边框css仅适用于ie8或更早版本(如果它出来时不是ie9)。

目的:这样,即缺失的阴影将被边框替换:

* hack似乎无法正常工作?我在ie8本地测试...

input, textarea{
display:block;
border:none;
*border: 1px solid #000;
-moz-box-shadow: 0px 0px 1px 1px #999;
-webkit-box-shadow: 0px 0px 1px 1px #999;
box-shadow: 0px 0px 1px 1px #999;

-moz-border-radius: 2px;
-webkit-border-radius: 2px; 
margin: 1px 0px 10px 0px;
font-size:12px;
color:#494949;
}

5 个答案:

答案 0 :(得分:12)

请勿使用CSS黑客,而是使用conditional comments来定位IE版本。

答案 1 :(得分:5)

添加到Residuum's answer,这是引用“pre IE 9”样式表所需的代码:

<!--[if lt IE 9]>
<link href="ie-pre-9.css" rel="stylesheet" type="text/css" />
<![endif]-->

第一行中的表达式指出,应在所有版本号小于(lt)的Internet Explorer版本上评估注释中的标记.9。在非Microsoft浏览器上,代码将是作为评论处理 - 即它将被忽略,并且不包括额外的样式表。

如果您不想为Internet Explorer修补程序创建其他样式表,则可以使用条件注释来打开/关闭整个页面内容的容器,并使用此容器的存在来打开修复程序开/关。例如:

<!--[if lt IE 9]><div class="ie"><![endif]-->
Page content here...
<!--[if lt IE 9]></div><![endif]-->

在主CSS文件中,您现在可以使用.ie为任何选择器添加前缀,使其仅定位版本号小于9的Internet Explorer:

a { color: red; }
.ie a { color: blue; }

答案 2 :(得分:3)

添加

<!--[if lt IE 9]>
        <link href="/directroy/IE.css" rel="Stylesheet" type="text/css"/>
<![endif]--> 

到你的head标签并使用这个新的样式表来定义你想要IE做什么。

它们被称为条件注释,IE使用它们来区分浏览器:)

答案 3 :(得分:1)

有一个像我一直在寻找的黑客,只需将其添加到css语句结尾之前;

\ 9

目标即&lt; = 8

答案 4 :(得分:1)

你真的应该添加条件样式表而不是添加黑客。你以后会感谢自己。