Jquery 如何为不同的浏览器使用不同的CSS文件?
我使用的css文件在某些浏览器中正常工作,而在IE和Safari等其他浏览器中则无法正常工作Jquery 如何为不同的浏览器使用不同的CSS文件?,jquery,html,css,Jquery,Html,Css,我使用的css文件在某些浏览器中正常工作,而在IE和Safari等其他浏览器中则无法正常工作 是否有任何技术可以使用不同的.css和.js文件来实现不同的浏览器兼容性?当然,也就是说,一般认为这是不好的做法,应该避免。然而,在高度复杂或以设计为导向的站点中,需要大量的遗留支持,如果已知并接受这些警告,那么这通常是不可避免的。总而言之,请不要这样做 绝对如此,也就是说,这通常被认为是不良行为,应该避免。然而,在高度复杂或以设计为导向的站点中,需要大量的遗留支持,如果已知并接受这些警告,那么这通常是
是否有任何技术可以使用不同的.css和.js文件来实现不同的浏览器兼容性?当然,也就是说,一般认为这是不好的做法,应该避免。然而,在高度复杂或以设计为导向的站点中,需要大量的遗留支持,如果已知并接受这些警告,那么这通常是不可避免的。总而言之,请不要这样做 绝对如此,也就是说,这通常被认为是不良行为,应该避免。然而,在高度复杂或以设计为导向的站点中,需要大量的遗留支持,如果已知并接受这些警告,那么这通常是不可避免的。总而言之,请不要这样做 对于safari,您不需要任何特殊的css。对于IE来说,常见的用途是创建一个特殊的css来覆盖某些样式:
<link rel="stylesheet" type="text/css" href="style.css" media="all">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="styleIE.css" media="all">
<![endif]-->
对于safari,您不需要任何特殊的css。对于IE来说,常见的用途是创建一个特殊的css来覆盖某些样式:
<link rel="stylesheet" type="text/css" href="style.css" media="all">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="styleIE.css" media="all">
<![endif]-->
Internet Explorer版本9之前支持,允许您获取一些HTML并向特定版本的IE显示或隐藏。您可以使用它向特定版本的Internet Explorer提供特定的CSS和JavaScript文件。例如:
<!--[if IE 8]>
<link rel="stylesheet" href="ie8.css">
<![endif]-->
<!--[if lt IE 9]>
<link rel="stylesheet" href="less-than-ie-9.css">
<![endif]-->
<!--[if lt IE 7]><html lang="en" class="lte-ie9 lte-ie8 lte-ie7 lte-ie6"><![endif]-->
<!--[if IE 7]> <html lang="en" class="lte-ie9 lte-ie8 lte-ie7"><![endif]-->
<!--[if IE 8]> <html lang="en" class="lte-ie9 lte-ie8"><![endif]-->
<!--[if IE 9]> <html lang="en" class="lte-ie9"><![endif]-->
<!--[if !IE><!--><html lang="en"><!--<![endif]-->
由于IE(直到第9版)明显存在缺陷,并且比其他浏览器的标准支持要少得多,因此经常使用条件注释来修复它,因此,您可以将特定于IE的CSS与其他CSS保持在相同的样式表中。例如:
<!--[if IE 8]>
<link rel="stylesheet" href="ie8.css">
<![endif]-->
<!--[if lt IE 9]>
<link rel="stylesheet" href="less-than-ie-9.css">
<![endif]-->
<!--[if lt IE 7]><html lang="en" class="lte-ie9 lte-ie8 lte-ie7 lte-ie6"><![endif]-->
<!--[if IE 7]> <html lang="en" class="lte-ie9 lte-ie8 lte-ie7"><![endif]-->
<!--[if IE 8]> <html lang="en" class="lte-ie9 lte-ie8"><![endif]-->
<!--[if IE 9]> <html lang="en" class="lte-ie9"><![endif]-->
<!--[if !IE><!--><html lang="en"><!--<![endif]-->
(但请注意,您可以理解为什么人们热衷于放弃对旧版本IE的支持。)
其他浏览器不支持类似的机制。正如中的链接所示,浏览器通常都有一些独特的CSS parsin bug,您可以使用这些bug在浏览器中定位代码。然而,一旦你沿着这条路走下去,你就会依赖于马车的行为。据你所知,你不想瞄准的未来浏览器可能会意外地包含相同的bug。一般来说,最好的方法是按照标准编写代码,并解决在特定浏览器中发现的任何错误
还值得记住的是,有些东西(例如表单控件)在不同的浏览器中看起来不一样,这没关系。它通常不会让最终用户感到困惑。Internet Explorer版本9之前支持,它允许您获取一些HTML并向特定版本的IE显示或隐藏。您可以使用它向特定版本的Internet Explorer提供特定的CSS和JavaScript文件。例如:
<!--[if IE 8]>
<link rel="stylesheet" href="ie8.css">
<![endif]-->
<!--[if lt IE 9]>
<link rel="stylesheet" href="less-than-ie-9.css">
<![endif]-->
<!--[if lt IE 7]><html lang="en" class="lte-ie9 lte-ie8 lte-ie7 lte-ie6"><![endif]-->
<!--[if IE 7]> <html lang="en" class="lte-ie9 lte-ie8 lte-ie7"><![endif]-->
<!--[if IE 8]> <html lang="en" class="lte-ie9 lte-ie8"><![endif]-->
<!--[if IE 9]> <html lang="en" class="lte-ie9"><![endif]-->
<!--[if !IE><!--><html lang="en"><!--<![endif]-->
由于IE(直到第9版)明显存在缺陷,并且比其他浏览器的标准支持要少得多,因此经常使用条件注释来修复它,因此,您可以将特定于IE的CSS与其他CSS保持在相同的样式表中。例如:
<!--[if IE 8]>
<link rel="stylesheet" href="ie8.css">
<![endif]-->
<!--[if lt IE 9]>
<link rel="stylesheet" href="less-than-ie-9.css">
<![endif]-->
<!--[if lt IE 7]><html lang="en" class="lte-ie9 lte-ie8 lte-ie7 lte-ie6"><![endif]-->
<!--[if IE 7]> <html lang="en" class="lte-ie9 lte-ie8 lte-ie7"><![endif]-->
<!--[if IE 8]> <html lang="en" class="lte-ie9 lte-ie8"><![endif]-->
<!--[if IE 9]> <html lang="en" class="lte-ie9"><![endif]-->
<!--[if !IE><!--><html lang="en"><!--<![endif]-->
(但请注意,您可以理解为什么人们热衷于放弃对旧版本IE的支持。)
其他浏览器不支持类似的机制。正如中的链接所示,浏览器通常都有一些独特的CSS parsin bug,您可以使用这些bug在浏览器中定位代码。然而,一旦你沿着这条路走下去,你就会依赖于马车的行为。据你所知,你不想瞄准的未来浏览器可能会意外地包含相同的bug。一般来说,最好的方法是按照标准编写代码,并解决在特定浏览器中发现的任何错误
还值得记住的是,有些东西(例如表单控件)在不同的浏览器中看起来不一样,这没关系。它通常不会让最终用户感到困惑。我发现这个老问题是因为我有同样的问题,所以我搜索了一下。也许这对你来说是个好办法。至少对我来说是这样。下面是如何在不同浏览器中使用不同的style.css的代码 仅javascript:
<script type="text/javascript">
var cssId = 'myCss';
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.id = cssId;
link.rel = 'stylesheet';
link.type = 'text/css';
link.media = 'all';
/*----------------------------------------------------------------*/
var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
var isFirefox = typeof InstallTrigger !== 'undefined';
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
var isChrome = !!window.chrome && !isOpera;
var isIE = /*@cc_on!@*/false || !!document.documentMode;
if (!document.getElementById(cssId)){
var output = "";
if(isFirefox){
output += "Firefox";
link.href = 'firefox.css';
head.appendChild(link);
}
else if(isChrome){
output += "Chrome";
link.href = 'chrome.css';
head.appendChild(link);
}
else if(isSafari){
output += "Safari";
link.href = 'safari.css';
head.appendChild(link);
}
else if(isOpera){
output += "Opera";
link.href = 'opera.css';
head.appendChild(link);
}
else if(isIE){
output += "IE";
link.href = 'ie.css';
head.appendChild(link);
}
document.body.innerHTML = output;
}
</script>
var cssId='myCss';
var head=document.getElementsByTagName('head')[0];
var link=document.createElement('link');
link.id=cssId;
link.rel='stylesheet';
link.type='text/css';
link.media='all';
/*----------------------------------------------------------------*/
var isOpera=!!window.opera | | navigator.userAgent.indexOf('OPR/')>=0;
var isFirefox=typeof InstallTrigger!='未定义';
var isSafari=Object.prototype.toString.call(window.HTMLElement.indexOf('Constructor')>0;
var isChrome=!!window.chrome&!等轴虫;
var isIE=/*@cc_on@*/假| |!!document.documentMode;
如果(!document.getElementById(cssId)){
var输出=”;
如果(iFirefox){
输出+=“Firefox”;
link.href='firefox.css';
头.子(链接);
}
else if(变色){
输出+=“铬”;
link.href='chrome.css';
头.子(链接);
}
else if(伊萨法里){
输出+=“Safari”;
link.href='safari.css';
头.子(链接);
}
else if(等参线){
输出+=“歌剧”;
link.href='opera.css';
头.子(链接);
}
否则如果(isIE){
输出+=“IE”;
link.href='ie.css';
头.子(链接);
}
document.body.innerHTML=输出;
}
希望能有所帮助。我找到了这个老问题,因为我有同样的问题,所以我搜索了一下。也许这对你来说是个好办法。至少对我来说是这样。下面是如何在不同浏览器中使用不同的style.css的代码 仅javascript: