针对IE8及以下版本的width属性的CSS hack

3

我正在尝试以下CSS hack来解决IE8及以下版本的问题:

 .class {
        background-color: #BFBFBF;
        width: 1154px;
        width: 930px \9;
       }

但是这个CSS hack也会影响IE9。

您能否帮助我仅在IE8及以下应用此宽度属性?


抱歉,我没有尝试过那个 @user125697。 - Niranjan Kumar
开发者可能无法访问HTML,这时就需要使用CSS hack。甚至有可能开发者无法访问选择器,因此只能使用属性hack。 - Dan Eastwell
4个回答

4
其他答案更好 - 你应该使用条件注释。但是为了回答你的问题,为什么你所做的不起作用,请尝试:
width: 930px\9;

没有空格。


1
我之前尝试过这个方法,现在也尝试了一遍,但都没有成功。由于我正在使用SASS,所以我不想使用其他选项。因为添加到SASS文件的代码会被转换为CSS文件,无法在SASS中添加条件语句,否则编译时会抛出异常。 - Niranjan Kumar

0
使用条件注释。
<!--[if IE 8]>
According to the conditional comment this is IE 8<br />
<![endif]-->

0

虽然我建议尽量避免使用特定于浏览器的CSS,但你最好使用条件注释。

<!--[if lte IE 8]><html class="ie8-"><![endif]-->

.ie8-.class {
    width: 930px;
}

0

与其诉诸一堆的技巧,我真的建议你充分利用javascript(参见http://modernizr.com/),将浏览器类型作为一个类放在html标签中。因此,在IE8中,你的页面标记会包括:

<html class="ie8">....

这样,您可以在样式表中引用特定于浏览器的类:

.class {
    background-color: #BFBFBF;
    width: 1154px;
}
.ie8 .class {width: 930px}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接