0

我知道有条件评论:

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

检测 Internet Explorer 9,但 Firefox 4 呢?如何仅为 Firefox 4 加载样式?

4

3 回答 3

1

您不能以相同的方式“检测”firefox。条件注释是 IE 唯一的“功能”。您必须通过后端的用户代理字符串来检测它。或使用 javascript。

于 2011-04-07T10:56:06.997 回答
1

FireFox 中没有条件注释可以做到这一点,如果你真的需要你最好的选择是使用 jQuery(或类似的)来加载相关的样式表。

$(document).ready(function() {
    if ($.browser.mozilla && $.browser.version == '2.0') {
        $('head').append($("<link>").attr({type: 'text/css', rel: 'stylesheet', href: 'css/firefox4-only.css'}));
    }
});

不过,我个人不推荐浏览器检测,如果需要,您应该使用 Web 标准和功能检测 :)

于 2011-04-07T11:08:41.137 回答
1

如果必须检测 FF4 的浏览器和版本,最好的答案是使用jQuery 的 browser() 方法

但是,我同意@Gareth McCaughan 的评论:如果您发现自己必须进行浏览器检测(对于 IE6/7 和可能的 IE8 以外的任何东西),那么您很可能做错了什么。您在问题中将它用于 IE9 的事实表明您可能已经弄错了。

所有现代浏览器,包括 IE9 和 FF4 都具有出色的标准支持,编写良好的页面应该在所有浏览器中呈现几乎相同的内容。

如果与其他现代浏览器相比,您在 IE9 或 Firefox 4 中的呈现方式确实有所不同,请说明它是什么,因为可能有比浏览器检测更好的解决方案来绕过它。

在 FF4 中我只知道一件事可能需要你求助于这个,那就是text-overflow:ellipsis,除了 Firefox 之外的所有现代浏览器都支持它。在此处查看我之前关于此主题的问题:文本溢出:Firefox 4 中的省略号?(和FF5)

于 2011-04-07T11:09:20.323 回答