important的扯淡

 前幾天在整理關於@import的一些內容時(這部分的內容將會在本月底發佈在ctrip ued博客中),突然想到!important這個東西似乎現在還是有不少人認爲在IE6中是不支持的。對於這點我是完全不認同的,雖然在很早之前我也是認爲完全不支持,但後來經朋友提醒,並且測試之後的確證明了IE6是支持的,只是支持的情況不一樣而已。

對於!important在IE6的支持情況,網絡上零零星星還是找到一些,很意外我在百度百科中也看到了,所以太多的廢話也就不說了,直接看http://baike.baidu.com/view/5843374.htm這個頁面上的最後的一點代碼介紹,如果不想點擊去看的話,引用部分代碼,( # ▽ # ) 省去自己寫代碼,我好懶啊……

?View Code CSS
 

1
2
#a{with:100px !important;} /*ie6 有效*/
#a{width:50px;}
?View Code CSS
 

1
#a{width:100px !important; width:50px;} /*ie6不支持*/

這兩段代碼大家可以分別在IE6中做一個測試,會發現當!important寫在一個選擇符內的時候,IE6會變得比較腦殘。這個時候我們也就可以作爲傳說中的HACK方式來處理頁面的兼容問題,但不建議這樣操作,因爲!important的優先級太高了。 (+﹏+)~

提到了優先級的話題,我能想到的一點就是以前有過幾次我作爲不合格的面試官時,問過關於!important的幾個問題,不過沒想到得到的答案比我這個不合格的面試官還要不合格。記得當時我的問題是“對於!important的看法是怎麼樣?IE6支持嗎?”,這個問題相信大家找谷哥或者度娘都可以得到答案。

偶爾我也會這樣問“如果在頁面某個標籤中寫了style屬性,如何通過CSS文件中的樣式定義來覆蓋style屬性中的樣式?”。記得當時得到比較多的答案就是“style屬性不是優先級最高了,而CSS文件中定義的樣式無論是ID還是class都沒辦法覆蓋style屬性中的樣式的。”真的是沒辦法嗎?那換個方式來說,下面這個代碼,最終是什麼顏色?

?View Code XML
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<style type="text/css">
#linxz {color:#FF0000;}
.blog {color:#CC9502;}
#linxz.blog {color:#9696C8;}
</style>
</head>
 
<body>
<div style="color:#488F48;" id="linxz" class="blog">文字顏色</div>
</body>
</html>

嗯,答案是style屬性中的#488F48對吧?那麼這個時候,給任意一個選擇符中加上!important後呢?比如這樣:

?View Code CSS
 

1
.blog {color:#CC9502 !important;}

顏色變了吧?

廢話完畢,又一次回顧了幾年前的內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章