已经问过how do call specific css for specific browser using jquery
我想将一个css文件用于safari,其他用于Mozilla和其他用于IE
答案 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动态替换和应用样式。