代码之家  ›  专栏  ›  技术社区  ›  Salil

可以为不同的浏览器使用不同的css文件并相应地加载吗

  •  1
  • Salil  · 技术社区  · 14 年前

    我正在摆脱浏览器兼容性问题。

    所以我想到了根据浏览器加载唯一的css。

    如果用户使用IE,那么只有styleIE.css被加载,如果firefox styleFF被加载等等。

    我的问题是,如果不是正确的方法,应该注意什么来避免这种兼容性问题。 因为当我为IE解决问题时,它会在我稳定的FF版本中打开新的问题

    6 回复  |  直到 14 年前
        1
  •  5
  •   Koen    14 年前

    尽管您可能希望使用具有共享样式的常规CSS文件,并将其与依赖于浏览器的CSS文件相结合,但这是经常进行的。

    但事实上,大多数不同浏览器的CSS问题都可以不用这个技巧解决,只要使用正确的标记和样式。。。

        2
  •  3
  •   Piskvor left the building Rohit Kumar    14 年前

    通常,创建一个在普通浏览器中看起来很好的样式表就足够了,然后制作一个仅限于IE的补充样式表来修复不兼容,并通过条件注释将其包括在内(尽管IE8+还行,IE7通常也可以):

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

    由于IE6是一个可怕的怪物从黎明的时间,它需要自己的具体黑客,你可以包括一个不同的样式表IE6(和更低的)和IE7(和更高的;大部分时间都不需要):

    <!--[if lte IE 6]>
        <link rel="stylesheet" href="/ie6_sheet.css" type="text/css">
    <![endif]-->
    <!--[if gt IE 6]>
        <link rel="stylesheet" href="/ie_newer_sheet.css" type="text/css">
    <![endif]-->
    

    另见:关于 conditional comments .

        3
  •  1
  •   Robusto    14 年前

    我使用重置样式表、普通样式表(即,对于所有符合标准的浏览器),然后使用引用IE各种版本的IE特定样式表。IE样式表只涵盖IE有问题的项。我用微软的 conditional comments

        4
  •  0
  •   reisio    14 年前

    这在道德上不应受谴责,但是
    您可以通过了解更多的内容来解决跨浏览器兼容性问题。

    http://hsivonen.iki.fi/doctype/
    http://validator.w3.org/
    http://jigsaw.w3.org/css-validator/
    http://www.positioniseverything.net/explorer.html

        5
  •  -1
  •   mcandre    14 年前

    是的,很多网站就是这么做的。

        6
  •  -1
  •   Alex Larzelere    14 年前

    这很好,唯一要记住的是,每次用户加载页面时,浏览器都必须遍历所有条件。因此,只要它不是过度的(每个主要浏览器的每个版本检查一次),没有人会注意到。

    如果你只有3到4个版本,那么对css进行修改会有点痛苦,但一切都是有代价的。