检测Firefox 3.5或Firefox 3.0或更低版本

时间:2009-07-16 18:45:37

标签: css firefox

我必须承认,在使用CSS之前我从来不必担心Firefox版本,但出于某种原因,与FF2和FF3.0相比,FF 3.5没有正确定位我的一些元素。

现在我面临必须检测其FF 3.5。

以下是我在FF和IE上处理CSS时所做的事情:

<!-- MAIN STYLESHEET -->
<link rel=stylesheet href="./inc/style.css" type="text/css">

<!-- IE STYLE SHEET -->
<!--[if IE]> <style type="text/css">@import "./inc/style.ie.css";</style> 
<![endif]-->

现在我需要添加第三个选项,但是如何?有没有办法做到这一点,还是我面临必须实现某种JavaScript解决方案?

谢谢 -

6 个答案:

答案 0 :(得分:9)

我的(短期)解决方案是使用这样的jQuery:

$(document).ready ( 
  function() {
    if ( $.browser.mozilla == true && $.browser.version == '1.9.1' ) {
      // modify css here
    }
  }
);

注意$ .browser.version不是你想象的那样3.5(而是返回渲染引擎版本)。此外,$。浏览器显然没有firefox值,只是为所有基于mozilla的浏览器返回mozilla。

假设这符合我的短期需求。谢谢 -

答案 1 :(得分:3)

使用浏览器标签无法做到这一点。您将不得不使用浏览器嗅探(使用JavaScript来检测浏览器),以加载正确的样式表。

如果您使用的是像Mootools或jQuery这样的JavaScript库,那么有一些功能可以做到这一点。

作为另一种解决方案,您还可以在服务器上检测它,然后发送备用样式表。

答案 2 :(得分:3)

我要做的第一件事就是尝试在没有特定于浏览器的CSS修复的情况下解决问题。通常需要更多考虑才能提出跨浏览器解。在这里发布您的CSS问题,然后我们可以尝试修复它:)

但是要直接回答你的问题,不幸的是你将不得不使用Javascript来完成这个问题。但幸运的是,有一个非常简单的解决方案。

加载此JavaScript文件,然后您可以使用以下属性:

  • BrowserDetect.browser
  • BrowserDetect.version
  • BrowserDetect.OS

然后你可以做类似的事情:

if (BrowserDetect.browser == 'Firefox' && BrowserDetect.version == '3.5')
{
  // Load CSS file
}

http://www.quirksmode.org/js/detect.html

答案 3 :(得分:1)

看起来有一个CSS解决方案,试试这个

    @-moz-document url-prefix() {
  .selector {
     color:lime;
  }
}

答案 4 :(得分:0)

Firefox没有条件评论。您可能必须检查用户代理并在结果上包含样式表。

答案 5 :(得分:0)

您可以使用JavaScript检查userAgent