CSS三大特性包括繼承性、層疊性、優先級。
繼承性表示沒有直接選中標簽,通過間接選中我們的目標標簽,比如為 ul 里面的 li 里面的 p 標簽設置文本顏色,那么直接在 ul 上設置文本顏色,也能夠實現 p 標簽中文本顏色的改變。能夠通過繼承改變樣式的屬性有 color、font開頭的屬性、text開頭的屬性、line開頭的屬性。
但是也有兩個是特殊的,比如超鏈接/錨點<a>標簽,a 標簽本身有自己的下劃線,它不受繼承性樣式的影響修改其下劃線,要修改下劃線必須通過直接選中來修改。
還有一個就是<hn>(如:<h1><h2>……),標題標簽本身有字體大小的設置,所以繼承性也無法改變其字體大小,同樣要修改字體大小的話要通過直接選中來修改。
層疊性在網頁中非常常見,可以有標簽擁有樣式,可以有類選擇器擁有樣式,還可以有 id 選擇器擁有樣式,而三個樣式同時存在于一個標簽中,這樣來決定當前標簽擁有的樣式,而至于最終這個標簽會以什么樣式存在,就涉及到三大特性的最后一樣。
優先級關系,優先級的判斷有多種情況。
當標簽中擁有 id 選擇器,又擁有 類選擇器時,那么優先使用 id選擇器 的樣式。如果沒有 id選擇器,則使用 類選擇器。如果標簽中既沒有 id選擇器,又沒有 類選擇器,那么就使用標簽的樣式。(主要就是:誰的作用域小使用誰的樣式)
當標簽擁有多個樣式表來為其設置樣式時,我們在樣式表中進行判斷。如果都是間接選中的,誰的作用域越小使用誰的樣式。如果都是直接選中的,我們需要判斷權重問題。
第一點,誰的 id 越多,使用誰的樣式。第二點,如果 id 一樣多,那么看誰的 類 比較多,類多的使用其樣式。第三點,如果 id 一樣多,類也一樣多,那么看誰的標簽比較多就使用其樣式。沒 id 的直接看 類,如果有 id 沒類的,直接看標簽。
如果 id 一樣多,類也一樣多,標簽也一樣多,那么誰在樣式表靠后的位置,就使用誰的樣式。
優先級:id>類>標簽>通配符>繼承>瀏覽器默認
直接選中時,在樣式屬性的屬性值后面,分號的前面加上 !important ,可以為屬性添加最高的優先級,這個優先級高于所有的選擇器。
新聞熱點
疑難解答