如何使用jquery为相应的浏览器调用不同的css

时间:2009-05-12 08:18:43

标签: javascript jquery css

已经问过how do call specific css for specific browser using jquery

我想将一个css文件用于safari,其他用于Mozilla和其他用于IE

3 个答案:

答案 0 :(得分:2)

您应该在服务器端执行此操作(甚至更好,根本不执行)。但是,如果你不想做这个客户端,你需要这样的东西。

var writeStyleSheet = function(url){
    var linkTag = document.createElement('link');
    linkTag.type = 'text/css';
    linkTag.rel = 'stylesheet';
    linkTag.href = url;
    linkTag.media = 'screen';
    document.getElementsByTagName("head")[0].appendChild(linkTag);
}
if(jQuery.brwoser.msie){
    writeStyleSheet('ie.css');
}
else if(jQuery.browser.safari){
    writeStyleSheet('safari.css');
}
else if(jQuery.browser.mozilla){
    writeStyleSheet('mozalla.css');
}

但请注意,jQuery.browser在1.3中已弃用。您应该创建一个适用于所有浏览器的样式表。可能会为IE特定的黑客添加一些条件评论:

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

答案 1 :(得分:0)

您可以嗅探浏览器,然后创建link元素并将其附加到head代码。

if(jQuery.browser.msie)
    $('head').append('<link href="css/ie.css" rel="stylesheet" />');
... // and so on.

编辑:jQuery.browser的参考。

答案 2 :(得分:0)

您可以使用$ .browser对象检测浏览器。

获取我从此blog entry

获得的所需样式表
$(document).ready(function() {
    $("a").click(function() {
        $('head').append('<link rel="stylesheet" href="style2.css" 
         type="text/css" />');
    });
});

这是Kelvin Luck的另一篇不错的帖子,描述了使用jquery动态替换和应用样式。