2013-01-09 96 views
5

有沒有辦法爲特定瀏覽器加載不同的CSS文件?每個瀏覽器的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" /> 
+1

雙崗...請參閱http://stackoverflow.com/a/2644080/1100536 – bluejamesbond

+0

你有什麼理由服務於特定的樣式表的每一個那些瀏覽器? – cimmanon

回答

13

你想要的理想解決方案不存在:

不幸的是,一個跨瀏覽器的解決方案不存在如果你正在嘗試做它的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'; 

顯然,這並不僅僅是檢測瀏覽器的類型。事實上,它知道版本,操作系統,以及您可以在該鏈接中閱讀的更多細節。但是,它確實通過用'mozilla','explorer'替換'chrome'來檢查所有類型的瀏覽器,等等......

然後添加你的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" />'); 
} 

祝你好運,希望這有助於!

+0

條件註釋僅適用於Internet Explorer(並且只適用於特定版本,我認爲8是最後一個支持它的版本)。 OP希望將不同的文件提供給非IE瀏覽器。 – cimmanon

+0

@cimmanon:我更新了它。 – bluejamesbond

+0

它仍然是一個可憐的答案。 UA嗅探對於提供內容從來都不是很好。 – cimmanon

-1

你可以在服務器端做到這一點。

if(Request.UserAgent is chrome){   
    //here output chrome stylesheet 
} 
-5

呀,

<link rel="stylesheet" type="text/css" browser="mozillafirefox" href="includes/firefox.css" /> 
<link rel="stylesheet" type="text/css" browser="googlechrome" href="includes/chrome.css" /> 
<link rel="stylesheet" type="text/css" browser="msinternetexpl" href="includes/ie.css" /> 
+0

你從哪裏讀到有'browser'屬性?根據[HTML5規範](http://www.w3.org/TR/html5/document-metadata.html#the-link-element),甚至根據[HTML4規範]( http://www.w3.org/TR/html4/struct/links.html#h-12.3)。 –