欧美日韩国产一区二区|qovd片|小明个人发布看看|小浪货你夹真紧水又多|老头把我添高潮了A片故|99热久久精品国产一区二区|久久久春色AV

IE瀏覽器單獨寫CSS樣式的幾種方法

因為萬惡的 IE 存在各種的不標(biāo)準(zhǔn),因此,在進行頁面開發(fā)時不免要為 IE 單獨寫一些 CSS。熟悉的方法有 IE hacks 和條件注釋 CSS(Conditional Stylesheets),下面,不妨討論一下這兩種方法的優(yōu)缺點 。
IE hacks
舉個例子,一個元素在其他瀏覽中的左邊距是 30px , 而在 IE6 中則設(shè)置為 20px ,可以如下編寫:

復(fù)制代碼代碼如下:
.demo {margin-left: 30px; _margin-left: 20px; }

對我個人而言,喜歡條件注釋 CSS 是勝于 IE hacks , 光是 IE hacks 里面帶有hacks這個單詞已經(jīng)讓人很不舒服,總覺得這是偏方,而且是很偏的解決方案 。但是,IE hacks 也有它的優(yōu)點
1.CSS hacks 內(nèi)嵌在普通的 CSS 里面,不會產(chǎn)生更多 HTTP 請求 。
2.CSS hacks 內(nèi)嵌在普通的 CSS 里面,編寫時比較方便 。

當(dāng)然,它的缺點也很明顯
【IE瀏覽器單獨寫CSS樣式的幾種方法】1.它是不標(biāo)準(zhǔn)的產(chǎn)物 。
2.內(nèi)嵌在其他 CSS 中,不便維護 。尤其是當(dāng) hacks 的數(shù)量比較多的時候維護簡直是個惡夢 。
3.內(nèi)嵌在其他 CSS 中,即使在非 IE 瀏覽器中也會被加載,浪費資源 。
條件注釋 CSS
同樣是上面的例子,如果使用條件注釋 CSS,可以如下編寫:
HTML:

復(fù)制代碼代碼如下:
!--[if IE 6 ]
link rel="stylesheet" type="text/css" media="all" /
![endif]--

ie6.css

復(fù)制代碼代碼如下:
.demo {margin-left: 20px; }

這里說明一下:條件注釋是一種 IE 專有的、對常規(guī)(X)HTML 注釋的 Miscrosoft 擴展 。從 W3C 標(biāo)準(zhǔn)來說,它也是不標(biāo)準(zhǔn)的產(chǎn)物,但它是微軟官方推出的針對 IE 進行開發(fā)的方式 , 并且條件注釋對于其他所有瀏覽器作為常規(guī)注釋出現(xiàn),因此對其他瀏覽器無害 。
條件注釋 CSS 的好處是在獨立的 CSS 文件中編寫 , 能準(zhǔn)確控制在特定的 IE 中加載,不會造成資源浪費 , 并且便于維護 。缺點就是會產(chǎn)生多余的 HTTP 請求,尤其是當(dāng)你需要兼容的 IE 版本很多的時候 , 你就需要產(chǎn)生多個 HTTP 請求,這對于本來通道數(shù)目就少的低版本 IE 來說無疑會影響頁面加載速度 。
顯然,以上兩種方法都不是很好的方法,因此,接下來介紹一種相對來說更好的解決方案 。
條件注釋 html 標(biāo)簽
這種方案也是利用條件注釋,但并不是對 CSS 使用條件注釋,而是對 html 標(biāo)簽使用條件注釋,引入不同的 class,從而區(qū)分不同的 IE 以及其他瀏覽器 。例如:

復(fù)制代碼代碼如下:
!DOCTYPE html
!--[if IE 6 ] html class="ie6 lte_ie6 lte_ie7 lte_ie8" lang="zh-CN" ![endif]--
!--[if lte IE 6 ] html class="lte_ie6 lte_ie7 lte_ie8" lang="zh-CN" ![endif]--
!--[if lte IE 7 ] html class="lte_ie7 lte_ie8" lang="zh-CN" ![endif]--
!--[if lte IE 8 ] html class="lte_ie8" lang="zh-CN" ![endif]--
!--[if (gte IE 9)|!(IE)]!--html lang="zh-CN"!--![endif]--

然后把針對特定 IE 的 CSS 加上相應(yīng)的 class 并寫在普通 CSS 文件里即可 。例如上面的例子則可以在 CSS 文件里編寫:

復(fù)制代碼代碼如下:
.ie6 .demo {margin-left: 20px; }

這種方法吸收了條件注釋表達式的好處同時又不會產(chǎn)生多余的 HTTP 請求,只是由于這些針對特定 IE 的 CSS 與普通的 CSS 放在一起,即不是相應(yīng)的 IE 也會被加載,因此如果 CSS 數(shù)目比較多的話就會像使用 hacks 那樣,造成浪費 , 開發(fā)者需要根據(jù)具體情況選擇方法 。

相關(guān)經(jīng)驗推薦