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

首頁 > 開發 > CSS > 正文

條件 CSS的使用

2024-07-11 08:44:56
字體:
來源:轉載
供稿:網友
介紹

毫無疑問,任何一個試圖使用 CSS 的網頁設計師和開發人員都會發現不同的瀏覽器要求不同的樣式聲明。這些煩惱歸咎于各瀏覽器及其各版本不同程度的 CSS 執行的完整性。條件 CSS 是這個問題的一個解決方案,采用的是 Internet Explorer 的條件注釋語法的思想,并把它內聯到 CSS 聲明之中。

基本用法

條件 CSS 主要用于指出一個特別的 CSS 聲明是不是應該用于一個特別的瀏覽器。當然你不希望經常這么做,但是當你需要針對一個瀏覽器的時候,它會非常有用。可以在U4EA支持列表里看到,大部分的瀏覽器都支持這種方式。

任意 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 - 算術符

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 的盒類。因此它也應該在 IE 5 中表現正常(我發現很多人已經放棄支持 IE 5了,但這是一個經典例子)。IE 5的盒模型不標準,因此這就是使用條件 CSS 解決的方法:

// 條件 CSS 盒模型例子

div.box {

width: 400px;

[if IE 5] width: 600px;

padding: 0 100px;
}

像你所看到的,條件 CSS 使得你可以只維護一個 CSS 文件,而不是好幾個需要用到 IE 的條件注釋的文件。這有助于流線型維護,也使得代碼更加清晰。

再進一步,條件 CSS 的一個重要特性是當它發現一條 @import CSS 聲明時,它會自動打開并插入需要導入的文件。這樣就減少了頁面的加載時間,因為瀏覽器只需要對 CSS 文件做出一條 HTTP 請求。

盡管條件 CSS 大多用于針對不同版本的 IE 瀏覽器,當你在別的瀏覽器碰到很難修正的 bug(主要使用 Javascript 修正) 的時候,條件 CSS 也是相當有用的。例子包括了缺少 ‘display: inline-block’ 支持的 Firefox 2 和 Safari 2 中的 背景圖片 bug。這些 bug 在這些瀏覽器的最新版本里面已經修正了,但是當這些瀏覽器占有一定市場份額的時候,向后兼容就很重要了。

下面的圖片展示了此頁面在 IE7,Safari 3,Firefox 2 和 Opera 9 中的顯示效果。


注意這個例子不適合部署在實際生產環境中,因為你只想在各瀏覽器總保持一致的布局,而條件 CSS 只是用來修正 CSS 顯示 bug。但是這個例子確實給出了一個好的例子用來說明不同的 CSS 怎樣定位不同的瀏覽器。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 塔城市| 尚义县| 普安县| 安陆市| 海晏县| 凤翔县| 炉霍县| 和政县| 泸西县| 安丘市| 东乡族自治县| 怀来县| 礼泉县| 海兴县| 河南省| 敦煌市| 乌拉特后旗| 松江区| 宁远县| 贺兰县| 池州市| 阜南县| 柳林县| 比如县| 桦南县| 扶风县| 南木林县| 赤壁市| 日喀则市| 清新县| 巴南区| 崇礼县| 咸阳市| 安康市| 博客| 湄潭县| 克东县| 会理县| 平泉县| 塘沽区| 双鸭山市|