【问题标题】:Including style sheets for different browsers without JavaScript包括不带 JavaScript 的不同浏览器的样式表
【发布时间】:2010-02-23 23:29:12
【问题描述】:

我有一个实用程序可以扫描我的 css 文件并将图像嵌入为 base64 以减少对服务器的请求量。不幸的是,IE 不支持这个。

我知道如何使用条件 cmets 包含 IE 特定的样式表,但是 FF、Opera 和 Webkit 呢?我不想给它不使用的 IE 样式表。

谢谢

【问题讨论】:

  • 您是想从 IE 中排除 CSS,还是将其包含在特定的非 IE 浏览器中?
  • 我试图阻止 IE 下载带有 base64 编码图像的样式表。

标签: javascript css conditional-comments


【解决方案1】:

如果我正确理解了您的问题(如果我没有正确理解),您可以使用条件 cmets 从 IE 中排除 CSS 文件:

<![if IE 9]>
IE will ignore this; other browsers won't.
<![endif]>

【讨论】:

  • 引用自 OP:“我知道如何使用条件 cmets [...] 包含 IE 特定样式表”
  • @FRKT:包括但不排除。
【解决方案2】:

Firefox、Opera 和 Safari 没有条件 cmets。我不确定您是否可以使用 Javascript 加载样式表,但我建议您不要这样做。

通常使用像 PHP 这样的服务器端脚本语言来确定客户端并提供相应的 CSS 文件。在PHP中,可以通过解析$_SERVER['HTTP_USER_AGENT']的内容来识别用户代理。

如果您不习惯使用 PHP 编程,可以使用许多脚本。 This one 似乎特别有前途。

【讨论】:

    【解决方案3】:

    通过读取 Web 请求中的用户代理,您可以在 HEAD 标记中提供不同的样式表。

    【讨论】:

      【解决方案4】:

      相反。最好的方法是使用以下方法。

      type="text/safari"

      type="text/chrome"

      阅读以下帖子以获得更好的解释。

      http://webgyani.com/2010/03/how-to-serve-different-stylesheets-only-to-safari-and-chrome/

      -阿米特

      【讨论】:

        【解决方案5】:

        相反。最好的方法是使用以下方法。 类型=“文本/野生动物园” 类型=“文本/铬”

        不,不要依赖浏览器错误! Chrome 计划在版本 50 中解决此问题(并因此禁用此 hack)。

        http://code.google.com/p/chromium/issues/detail?id=286682

        https://groups.google.com/a/chromium.org/forum/m/#!topic/blink-dev/nH1O6WszMgo

        【讨论】:

          猜你喜欢
          • 2014-06-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多