有没有办法为特定浏览器加载不同的 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”等来检查所有类型的浏览器...
然后添加您的 css 文件,只需跟进像这样的条件语句:
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" />');
}
祝您好运,希望对您有所帮助!
关于html - 每个浏览器都有不同的 CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227531/