国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

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

2024-07-11 08:30:29
字體:
供稿:網(wǎng)友

因為萬惡的 IE 存在各種的不標(biāo)準(zhǔn),因此,在進(jì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)然,它的缺點也很明顯——

1.它是不標(biāo)準(zhǔn)的產(chǎn)物。
2.內(nèi)嵌在其他 CSS 中,不便維護(hù)。尤其是當(dāng) hacks 的數(shù)量比較多的時候維護(hù)簡直是個惡夢。
3.內(nèi)嵌在其他 CSS 中,即使在非 IE 瀏覽器中也會被加載,浪費資源。

條件注釋 CSS

同樣是上面的例子,如果使用條件注釋 CSS ,可以如下編寫:

HTML:

復(fù)制代碼
代碼如下:
<!--[if IE 6 ]>
<link rel="stylesheet" type="text/css" media="all" href="./ie6.css" />
<![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 進(jìn)行開發(fā)的方式,并且條件注釋對于其他所有瀏覽器作為常規(guī)注釋出現(xiàn),因此對其他瀏覽器無害。

條件注釋 CSS 的好處是在獨立的 CSS 文件中編寫,能準(zhǔn)確控制在特定的 IE 中加載,不會造成資源浪費,并且便于維護(hù)。缺點就是會產(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]-->
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦城县| 山东省| 饶河县| 安塞县| 徐闻县| 济源市| 桐城市| 巩义市| 申扎县| 德兴市| 甘孜| 丹凤县| 合水县| 遂川县| 望谟县| 吉安市| 黔西县| 洮南市| 松阳县| 石家庄市| 曲周县| 金寨县| 藁城市| 黑龙江省| 荥经县| 合川市| 宜阳县| 安国市| 沙河市| 康定县| 西昌市| 广汉市| 常熟市| 汶川县| 合山市| 长沙市| 娱乐| 拉萨市| 阿城市| 信宜市| 凤庆县|