一、什麼是繼承性?
作用:給父元素設定一些屬性,子元素也可以使用,這個我們就稱之為繼承性。
"color:red"
>
<
/p>
<
/div>
//`` 的 `color: red`屬性,這個屬性將被 `` 繼承,即 `` 也擁有屬性 `color: red`。
「直接樣式」比「祖先樣式」優先順序高。
<
!-- 類名為 son 的 div 的 color 為 blue --
>
"color: red"
>
="son" style=
"color: blue"
>
<
/div>
<
/div>
注意點:
1 並不是所有的屬性都可以繼承,只有以color/font-/text-/line開頭的屬性才可以繼承
2 在css的繼承中不僅僅是兒子可以繼承,只要是後代都可以繼承
3 css繼承性中的特殊性
3.1 a標籤的文字顏色和下劃線是不能繼承的
3.2 h標籤的文字大小是不能繼承的
應用場景**:**
一般用於設定網頁上的一些共性資訊,例如網頁的文字顏色,字型,文字大小等內容。
二、什麼是層疊性?
作用:層疊性就是css處理衝突的一種能力
注意點:層疊性只有在多個選擇器選中「同乙個標籤」,然後又設定了「相同的屬性」,才會發生層疊性。後寫的屬性覆蓋掉先寫的屬性。
優先順序作用:當多個選擇器選中同乙個標籤,並且給同乙個標籤設定相同的屬性時,如何層疊就由優先順序來確定
2優先順序判斷的三種方式
2.1是否是直接選中(間接選中就是指繼承)
如果是間接選中,那麼就是誰離目標標籤較近就聽誰的
2.2是否是相同選擇器
如果都是直接選中,並且都是同型別的選擇器,那麼就是誰寫在後面就聽誰的
2.3不同選擇器
如果都是直接選中,並且不是相同型別的選擇器,那麼就會按照選擇器的優先順序來層疊
規則:內聯樣式》id選擇器》類選擇器 = 屬性選擇器 = 偽類選擇器》標籤= 偽元素選擇器》萬用字元》繼承》瀏覽器預設
// html
="content-class" id=
"content-id" style=
"color: black"
>
<
/div>
// css
#content-id
.content-
class
div
//div元素的顏色為black,因為內聯樣式的優先順序高於其他的
!important
作用:用於提公升某個直接選中標籤的選擇器中的某個屬性的優先順序的,可以將被指定的屬性的優先順序提公升為最高
// html
="father"
>
="son"
>
<
/p>
<
/div>
// css
p .father .son
//雖然 .father .son 擁有更高的權值,但選擇器 p 中的 background 屬性被插入了 !important,所以 的 background 為 red。
注意點:
1 !important只能用於直接選中,不能用於間接選中
2萬用字元選擇器選中的標籤也是直接選中的
3!important只能提公升被指定的屬性的優先順序,其他的屬性的優先順序不會被提公升
4!important必須寫在屬性值的分號前面
5!important前面的感嘆號不能省略
優先順序的權重
作用:當多個選擇器混合在一起使用時,我們可以通過計算權重來判斷誰的優先順序最高
權重的計算規則
1首先先計算選擇器中有多少個id,id多的選擇器優先順序最高
2如果id的個數一樣,那麼再看類名的個數,類名個數多的優先順序最高
3如果類名的個數一樣,那麼再看標籤名稱的個數,標籤名稱個數多的優先順序最高
4如果id個數一樣,類名個數也一樣,標籤名稱個數也一樣,那麼就不會繼續往下計算了,那麼此時誰寫在後面就聽誰的,也就是說,優先順序如果一樣,那麼誰寫在後面聽誰的
// html
"con-id"
>
="con-span"
>
<
/span>
<
/div>
// css
#con-id span
div .con-span
//span顏色為red,#con-id優先順序高於div,所以span的顏色為red
注意點:
只有選擇器是直接選中標籤的才需要計算權重
如果外部樣式表和內部樣式表中的樣式同時使用,這與樣式表在 html 檔案中所處的位置有關。樣式被應用的位置越在下面則優先順序越高。
// html
"stylesheet" type=
"text/css" href=
"style-link.css"
>
"text/css"
>
@import
url(style-
import
.css)
; div
<
/style>
<
/div>
// style-link.css
div
// style-import.css
div
//從順序上看,內部樣式在最下面,被最晚引用,所以 的背景色為 blue。
錯誤的說法
在學習過程中,你可能發現給選擇器加權值的說法,即 id 選擇器權值為 100,類選擇器權值為 10,標籤選擇器權值為 1,當乙個選擇器由多個 id 選擇器、類選擇器或標籤選擇器組成時,則將所有權值相加,然後再比較權值。這種說法其實是有問題的。比如乙個由 11 個類選擇器組成的選擇器和乙個由 1 個 id 選擇器組成的選擇器指向同乙個標籤,按理說 110 > 100,應該應用前者的樣式,然而事實是應用後者的樣式。
錯誤的原因是:選擇器的權值不能進製。還是拿剛剛的例子說明。11 個類選擇器組成的選擇器的總權值為 110,但因為 11 個均為類選擇器,所以其實總權值最多不能超過 100, 你可以理解為 99.99,所以最終應用後者樣式。
CSS權重以及優先順序
權重的級別劃分包含了所有的css選擇器 如果兩個選擇器作用在同乙個元素上,則權重高者生效 權重的級別根據選擇器被分為四個分類 行內樣式,id,類和屬性,以及元素。當很多規則都被應用到某乙個元素上時,全中決定了那種規則生效。每個選擇器都有自己的權重。每個css規則,都包含了乙個權重級別。如果兩個選擇器...
css樣式優先順序
多重樣式將層疊為乙個 樣式表允許以多種方式規定樣式資訊。樣式可以規定在單個的 html 元素中,在 html 頁的頭元素中,或在乙個外部的 css 檔案中。甚至可以在同乙個 html 文件內部引用多個外部樣式表。層疊次序 當同乙個 html 元素被不止乙個樣式定義時,會使用哪個樣式呢?一般而言,所有...
CSS樣式優先順序
css樣式分為內聯樣式和外部樣式,一般情況下 內聯樣式的優先順序大於外部樣式。即style樣式 id選擇器 class選擇器 元素選擇器。例如 on person num li當對li標籤新增上面兩個樣式時,on樣式中重複的內容是不會生效的。因為.on樣式的優先順序值小於li,它會被li樣式覆蓋。但...