爲IE和其他瀏覽器分離CSS的最佳方式是什麼?我正在考慮針對IE,Firefox和Safari用戶。尤其是現在在大多數瀏覽器中支持CSS3但IE。針對特定瀏覽器使用不同的CSS樣式
的各種方式來做到這一點,我已經遇到的
- 加載單獨的樣式表 有條件使用
<!--[if IE]
> - 下劃線黑客和其他各種內嵌IE黑客
我喜歡(2)作爲(1)是額外的工作,特別是在開發時。但(2)似乎並不一直工作。什麼是最有效的方法?
爲IE和其他瀏覽器分離CSS的最佳方式是什麼?我正在考慮針對IE,Firefox和Safari用戶。尤其是現在在大多數瀏覽器中支持CSS3但IE。針對特定瀏覽器使用不同的CSS樣式
的各種方式來做到這一點,我已經遇到的
<!--[if IE]
>我喜歡(2)作爲(1)是額外的工作,特別是在開發時。但(2)似乎並不一直工作。什麼是最有效的方法?
我會有一個樣式表,一切都在文檔的頂部拾取。
下面這個做你的 [! - [如果IE]] 有條件的樣式表。
在這裏只是覆蓋在IE中導致問題的樣式。 - 被挑選的特定班級的最後一種風格是將要遵循的風格。
這正是我所做的,因爲我討厭搞我的標準兼容樣式表來破解ie的修復。 – 2009-10-28 14:27:58
謝謝。這對我來說。 :) – sean 2009-10-28 14:33:08
我們的團隊處理CSS以下三個規則:
我同意將所有核心CSS保存在一個文件中。如果您使用的是ASP.NET,那麼您可以使用WebHandler來管理實際發送的CSS。我相信其他語言也有類似的解決方案。這允許你只發送你需要的東西並且允許它被緩存。另一個好處是你可以合併多個css文件(如果你是這樣做的話)並且只出現一個。當您減少對Web服務器的請求數時,這是很好的做法。
然後,您可以編寫像[如果lt IE 8] margin:0px;它不會被髮送到IE8或FF等
如果你只是使用HTML,那麼你必須去上面提到的[! - [如果IE]]風格的條件。
我們在我們非常大的項目中使用WebHandler,並且我不會以任何其他方式進行操作。
請參閱http://www.conditional-css.com/download。它可用於PHP,C#和C
祝你好運。
<!--[if !IE]><!--><link rel="stylesheet" href="non-ie.css"><!--<![endif]-->
<!--[if IE]><link rel="stylesheet" href="ie.css"><![endif]-->
這個技巧廣泛使用Yandex(又名「俄語谷歌」)來減少HTTP請求。例如,使用這個的market.yandex.ru。
您也可以使用這種方式;某些時候條件可能不適用於需要在代碼中間編寫樣式的地方。
<?php $browser = $_SERVER['HTTP_USER_AGENT']; ?>
<?php if (strstr($browser, "MSIE 6.0")) { ?>
<link rel="stylesheet" href="ie6style.css" type="text/css" media="screen" />
<?php }else{ ?>
<link rel="stylesheet" href="default.css" type="text/css" media="screen" />
<?php } ?>
檢查$browser
有:
IE - 「MSIE」
火狐 - 「火狐」
Safari瀏覽器 - 「野生動物園」
劇 - 「歌劇」
Chrome - 「Chrome」
這隻有在他使用PHP時纔有效 – Marcelo 2012-11-25 13:34:19
您是否針對特定的瀏覽器,除了解決瀏覽器錯誤問題? – outis 2009-10-28 14:22:05
我針對的是支持CSS3的瀏覽器,而沒有支持CSS3的瀏覽器 – sean 2009-10-28 14:24:49
沒有支持所有CSS3的瀏覽器,並且Internet Explorer和Firefox都支持某些CSS 3.(對於CSS 3的定義因爲你可以給它的當前狀態) – Quentin 2009-10-28 14:31:52