首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何只为特定的IE浏览器设置CSS?

如何只为特定的IE浏览器设置CSS?
EN

Stack Overflow用户
提问于 2012-01-15 23:26:03
回答 7查看 65.9K关注 0票数 10

我有一个CSS/jQuery复选框样式脚本:http://jsfiddle.net/BwaCD/

问题是,在当前的浏览器中,为了使span在输入上浮动,输入的位置必须是绝对的。但是在IE8 &下面,脚本将不能工作,因此我只剩下和绝对定位在其他元素之上的输入。我并不是要求脚本在IE8中工作&如下所示。

我想知道如何使用CSS来设置一个特定的样式,如果它是IE8和更低的样式。我想如果它是必要的话,jQuery是可以接受的,但我不认为它是。我知道这可以用CSS和HTML来完成,我只是不知道怎么做。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-01-15 23:27:43

Stack Overflow用户

发布于 2012-01-15 23:34:51

条件注释可以工作(<!--[if lte IE 8]><stylesheet><![endif]-->),但是如果您想在样式表中完成所有这些工作,则需要使用是一种

代码语言:javascript
复制
body {  
    color: red; /* all browsers, of course */  
    color: green\9; /* IE only */  
}

这里最重要的是"\9",它必须是“9”。我不清楚这到底是为什么。

编辑:仅靠\9黑客本身是不够的。要排除IE9,还需要黑客攻击

代码语言:javascript
复制
:root body {
    color: red\9; /* IE9 only */  
}

除了IE之外,其他浏览器可能支持:root,所以如果您使用它来攻击IE9,那么将它与\9攻击结合起来。

票数 16
EN

Stack Overflow用户

发布于 2012-01-15 23:38:23

编辑(8月28日):请注意,以下答案实际上只适用于Internet,至少是版本8及更早版本。据我所知,现在没有主流浏览器支持条件注释,甚至Internet 11也不支持。

您可以使用Internet的条件注释将类名添加到较旧IE浏览器的HTML根标记中:

代码语言:javascript
复制
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

然后,通过引用适当的类名,可以定义特定于IE的CSS,如下所示:

代码语言:javascript
复制
.ie8 body {
   /* Will apply only to IE8 */
}

来源:http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8874290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档