舉例詳解CSS中的繼承

來源:互聯網
上載者:User

   CSS的繼承是由所使用的樣式屬性定義的。換句話說,當你查看CSS屬性backgruound-color,你會看到一欄「繼承性」,也許你幾乎沒有在意過它,但是它還是十分有用的。

  什麼是CSS繼承

  每一個元素都是文檔樹的一部分,除了最頂級的HTML元素,每個元素都有其對應的父級元素,每一個父級元素的CSS屬性值都可以被應用到它的子項目中去。

  舉個栗子,H1標籤包含著一個EM標籤:

  EM就是H1標籤的子項目,任何H1中繼承的CSS屬性值會自動在EM標籤中生效,比如:

  CSS Code複製內容到剪貼簿

  h1{font-size: 120%;}

  由於font-size是預設繼承的CSS屬性,"很大的"字型也會和H1一樣,被放大到120%。

  如何使用CSS繼承

  最簡單的方法就是知道CSS所有屬性中那些是預設被繼承的,如果這個屬性被繼承,就會知道它會在元素所有子項目中生效。

  我們經常在非常頂級的元素上定義基礎樣式,比如BODY標籤,如果在body中設定字型,因為繼承,文檔中所有元素都會應用這個字型:

  CSS Code複製內容到剪貼簿

  h1{font-size: 120%;}

  使用「inherit」值

  每個CSS屬性的值都包括inherit,屬性被定義這個值後,即使這個屬性不是預設繼承,也會應用父級元素這個CSS屬性的值,比如:

  CSS Code複製內容到剪貼簿

  body { margin: 1em; }

  p { margin: inherit; }

  繼承使用計算值(Computed Values)

  計算值指的是這個值相對於網頁中其他值來定義,這個對於繼承屬性尤其重要。如果在body中定義font-size:1em,文檔中所有元素字型大小並不都是1em,這是因為像H1-H6這類元素的font-size的值是相對大小。H1預設是網頁中字型最大的元素,當設定body元素字型大小時,H1-H6會根據這個「平均」大小的字型計算實際的字型大小。

  再舉一個例子:

  按照之前所述,font-size是預設被繼承的CSS屬性,然而span字型的大小並不是p的80%,而是和p一樣大,正是因為繼承使用的是計算值,如果p的父級元素的字型大小為30px,p的字型大小計算值為24px,span繼承的則是24px,而不是80%。

  更多關於計算值可以閱讀CSS Computed Value。

  background被「繼承」

  查看backgruound屬性,會看到它的繼承性是no,也就是預設不被繼承的。但是瀏覽器依舊預設「繼承」了這個屬性,比如寫這麼一段:

  “很大的”依舊有了黃色的背景,這是因為background屬性的初始值(initial value)是transparent(透明),所以看到的黃色背景其實是h1標籤的背景。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.