介紹
毫無疑問,任何一個試圖使用 CSS 的網(wǎng)頁設(shè)計師和開發(fā)人員都會發(fā)現(xiàn)不同的瀏覽器要求不同的樣式聲明。這些煩惱歸咎于各瀏覽器及其各版本不同程度的 CSS 執(zhí)行的完整性。條件 CSS 是這個問題的一個解決方案,采用的是 Internet Explorer 的條件注釋語法的思想,并把它內(nèi)聯(lián)到 CSS 聲明之中。
基本用法
條件 CSS 主要用于指出一個特別的 CSS 聲明是不是應(yīng)該用于一個特別的瀏覽器。當然你不希望經(jīng)常這么做,但是當你需要針對一個瀏覽器的時候,它會非常有用?梢栽赨4EA支持列表里看到,大部分的瀏覽器都支持這種方式。
任意 CSS 聲明或者塊都可以添加條件聲明前綴,這些前綴有3種基本類型: [if {!} browser] [if {!} browser version] [if {!} condition browser version]
! - 聲明的否定 (例 NOT) - 可選
browser - 聲明針對的瀏覽器 ‘IE’ - Internet Explorer ‘Gecko’ - Gecko 核心的瀏覽器 (Firefox, Camino 等) ‘Webkit’ - Webkit 核心的瀏覽器 (Safari, Shiira 等) ‘SafMob’ - 移動版 Safari (iPhone / iPod Touch) ‘Opera’ - Opera 的瀏覽器 ‘IEMac’ - Mac 版本的 Internet Explorer ‘Konq’ - Konqueror ‘IEmob’ - 移動版 IE ‘PSP’ - Playstation Portable ‘NetF’ - Net Front(恕糖伴西紅柿無知,不知道這是啥東東)
version - 要針對的瀏覽器版本
condition - 算術(shù)符 lt - 小于 lte - 小于等于 eq - 等于 gte - 大于等于 gt - 大于
一些條件聲明的例子:
// 條件-CSS 語法實例 [if IE] - 如果瀏覽器是 IE [if ! Opera] - 如果瀏覽器不是 Opera [if IE 5] - 如果瀏覽器是 IE 5 [if lte IE 6] - 如果瀏覽器是 IE 6 或者更低版本 (IE 5, IE 4 等) [if ! gt IE 6] - 和上面的聲明等效, 如果瀏覽器版本不高于 IE 6
因為許多實例認為 div 是具有 width 和 padding 的盒類。因此它也應(yīng)該在 IE 5 中表現(xiàn)正常(我發(fā)現(xiàn)很多人已經(jīng)放棄支持 IE 5了,但這是一個經(jīng)典例子)。IE 5的盒模型不標準,因此這就是使用條件 CSS 解決的方法:
// 條件 CSS 盒模型例子 div.box { width: 400px; [if IE 5] width: 600px; padding: 0 100px; }
像你所看到的,條件 CSS 使得你可以只維護一個 CSS 文件,而不是好幾個需要用到 IE 的條件注釋的文件。這有助于流線型維護,也使得代碼更加清晰。
再進一步,條件 CSS 的一個重要特性是當它發(fā)現(xiàn)一條 @import CSS 聲明時,它會自動打開并插入需要導入的文件。這樣就減少了頁面的加載時間,因為瀏覽器只需要對 CSS 文件做出一條 HTTP 請求。
盡管條件 CSS 大多用于針對不同版本的 IE 瀏覽器,當你在別的瀏覽器碰到很難修正的 bug(主要使用 Javascript 修正) 的時候,條件 CSS 也是相當有用的。例子包括了缺少 ‘display: inline-block’ 支持的 Firefox 2 和 Safari 2 中的 背景圖片 bug。這些 bug 在這些瀏覽器的最新版本里面已經(jīng)修正了,但是當這些瀏覽器占有一定市場份額的時候,向后兼容就很重要了。
出處:前端觀察
責任編輯:bluehearts
上一頁 下一頁 條件CSS的使用 [2]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|