css的選擇器和優先級,CSS選擇器權重如何計算?
很古老的話題了
id=100
class=10
tag(標簽)=1
按照這個規律去計算,比如
#qietu div{}
100+1 = 101
.qietu .box{}
10+10=20
可以得出第一個的權重要比第二個要高。另外關于權重的擴展知識面,我推薦了解下BEM命名規則,這個觀念很好,可以從側面杜絕權重問題的產生,還有一個就是提高權重的方法 !important;
css中四種常用的虛類順序?
四種偽類存在著一定的順序,稱為LVHA順序。各個樣式之間的順序很有講究,一旦出現排列錯誤就很有可能形成覆蓋,導致其中某個樣式無法顯示。link與visit的位置是隨意的。但hover,focus,active則必須按照focus–hover–active這個順序。
css的優先級怎么判斷?
css選擇器優先級怎么比較CSS選擇器中比較常見的有標簽選擇器、ID選擇器、類選擇器以及子選擇器。而事實上,CSS選擇器如果細分下來,竟然多達40多種。那他們的優先級該怎么比較呢,下面就來看看吧。
● 不同級別
1. 在屬性后面使用 !important 會覆蓋頁面內任何位置定義的元素樣式。
2. 作為style屬性寫在元素內的樣式
3. id選擇器
4. 類選擇器
5. 元素選擇器
6. 通配符選擇器
7. 瀏覽器自定義或繼承
總結排序:!important > 行內樣式 > ID選擇器 > 類選擇器 > 元素 > 通配符 > 繼承 > 瀏覽器默認屬性
● 同一級別
(1) 同一級別中后寫的會覆蓋先寫的樣式
(2) 同一級別css引入方式不同,優先級不同
總結排序:內聯(行內)樣式 > 內部樣式表 > 外部樣式表 > 導入樣式(@import)。
對于選擇器優先級,還可以通過計算權重值來比較
important?
本來不想回答的,但是我發現樓上回答有問題,會讓人誤解,我更正一下 !important 表示高優先級。
IE6瀏覽器不認識 !important 。舉例: 正常情況下,寫在下面的樣式優先級高于上面的樣式 demo1{ color:red; color:green; /*綠色的優先級高于紅色,所有瀏覽器都會顯示綠色*/ } 加了!important 那么它的優先級會比較高,ie6比較傻,不認識。demo2{ color:red !important; /*除了ie6,其他瀏覽器會認為紅色優先級高,顯示紅色字體*/ color:green; /*ie6瀏覽器則順序讀取css所以顯示綠色*/ } 但是注意,IE6不認識!important的優先級,但并不代表IE6不認識帶!important的樣式屬性。demo3{ color:red; color:green !important; /*包括IE6,所有瀏覽器都顯示綠色字體,ie6只是不認識優先級罷了*/ }