是否可以为IE(任何版本的ie)和chrome使用不同的CSS

时间:2015-03-05 14:33:52

标签: css google-chrome internet-explorer-10 internet-explorer-11

是否可以为IE(任何版本的ie)和chrome使用不同的css选择器?它是一个普通的顶级属性,在浏览器中显示不同,需要根据浏览器明确调整

3 个答案:

答案 0 :(得分:0)

你想要达到什么目标?

  • 如果您想补偿浏览器可以用于的所有差异,例如。 Modernizr的

  • 如果你想为IE添加特殊的css文件你可以使用条件评论他们看起来像这样:

    < ! - [如果IE 9]> < link rel =“stylesheet”type =“text / css”th:href =“ie9.csss”/> < ![ENDIF] - >“中

  • 如果你想在css选择器中修复一些东西,你可以使用hack(HACK!意思是不推荐,避免,但如果你真的必须,你的头旁边还有枪......等等)或css类只能用于特定的浏览器(谷歌这里有很多)例如。 http://code.tutsplus.com/tutorials/quick-tip-how-to-target-ie6-ie7-and-ie8-uniquely-with-4-characters--net-10575

  • 最后一个选项学习CSS并找到你犯错的地方,因为可能有些元素大小不同,并且与位置顶部造成1-2 px差异

答案 1 :(得分:0)

单独使用CSS无法做到这一点。你需要所谓的"条件评论"如下:

<!--[if IE 8]>
<p>This is IE 8</p>
<![endif]-->

这些内容已添加到您的HTML中,可以通过多种方式使用。我使用它们的两种主要方式是:

  • 链接到完全不同的CSS样式表
  • 更改<html>或其他某个父标记上的类,并使用CSS规则选择其中的任何子标记

我意识到第二种描述可能听起来有点复杂,但它实际上非常简单,所以这里有一个例子:

<!DOCTYPE HTML>
<!--[if IE 8]>
<html lang="en-US" class="ie8">
<![endif]-->
<![if !IE]>
<html lang="en-US">
<![endif]>
...
<body>
    <div class="someClass"></div>
</body>
...

然后,在您的CSS中,使用类似于.ie8 .someClass

的选择器

答案 2 :(得分:0)

欢迎来到俱乐部!无论如何,虽然你可以尝试在元素上设置特定于浏览器的css,但实际上你不能保证它会像你想象的那样完全 。因为它取决于这些浏览器如何处理这些css类,所以你无能为力。您可以尝试为IE设置不同的css类:

<!--[if lt IE 9]>
   <html class="ie">
<![endif]-->
<!--[if (!IE) | (IE 9)]><!-->
   <html>
<!--<![endif]-->

请注意,这些实际上是注释行,但即读取这些行并设置用户定义的css类&#34;即&#34;到html元素(您可能会注意到Chrome和Firefox忽略了这些语句)。然后你可以使用这个css,例如;

html.ie div{
    top: 0;
}

我知道,处理这些跨浏览器即bs真的很烦人。希望这有帮助