有没有办法为特定浏览器加载不同的CSS文件?
喜欢(可怜的伪代码):
if firefox <link rel="stylesheet" type="text/css" href="includes/MyCssFirefox.css" /> if chrome <link rel="stylesheet" type="text/css" href="includes/MyCssChrome.css" /> if Safari <link rel="stylesheet" type="text/css" href="includes/MyCssSafari.css" />
解决方法
您想要的理想解决方案不存在:
遗憾的是,如果您尝试在HTML本身上执行此操作,则不存在跨浏览器解决方案.但是,它适用于大多数IE版本.像这样:
<!--[if IE]> <link rel="stylesheet" type="text/css" href="includes/myIEGeneralStyle.css" /> <![endif]--> <!--[if IE 6]> <link rel="stylesheet" type="text/css" href="includes/myIE6Style.css" /> <![endif]--> <!--[if IE 7]> <link rel="stylesheet" type="text/css" href="includes/myIE7Style.css" /> <![endif]--> <!--[if IE 8]> <link rel="stylesheet" type="text/css" href="includes/myIE8Style.css" /> <![endif]-->
所以最好的解决方案:
像这样的Javascript解决方案怎么样:Browser Detection.阅读一下这个类来更好地澄清,该文件基本上做的只是这样的概念:
var browser = navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? 'chrome' : 'other';
显然,它不仅仅是检测浏览器的类型.实际上,它知道您可以在该链接中阅读的版本,操作系统和更多细节.但是,它通过将’chrome’替换为’mozilla’,’explorer’等来检查所有类型的浏览器…
if (BrowserDetect.browser.indexOf("chrome")>-1) { document.write('<'+'link rel="stylesheet" href="../component/chromeCSSStyles.css" />'); } else if (BrowserDetect.browser.indexOf("mozilla")>-1) { document.write('<'+'link rel="stylesheet" href="../component/mozillaStyles.css" />'); } else if (BrowserDetect.browser.indexOf("explorer")>-1) { document.write('<'+'link rel="stylesheet" href="../component/explorerStyles.css" />'); }
祝你好运,希望这能帮到你!