CSS樣式覆蓋規則的詳細介紹

來源:互聯網
上載者:User
大家都知道CSS的全稱叫做“層疊樣式表”,但估計很多人都不知道“層疊”二字的含義。其實,“層疊”指的就是樣式的覆蓋,當一個元素被運用上多種樣式,並且出現重名的樣式屬性時,瀏覽器必須從中選擇一個屬性值,這個過程就叫“層疊”。樣式覆蓋(這種叫法更福士化些)遵循一定的規則,之前我對這個規則一直似懂非懂的,直到這幾天看了”CSS: The Missing Manual”,才豁然開朗。下面是我的一些學習筆記。

首先需要明確的是,很多情況都會導致一個元素被運用上多種樣式,樣式覆蓋的規則也需要根據不同的情況來定,具體規則如下。

規則一:由於繼承而發生樣式衝突時,最近祖先獲勝。

CSS的繼承機制使得元素可以從包含它的祖先元素中繼承樣式,考慮下面這種情況:

<html><head><title>rule 1</title><style>body {color:black;}   p {color:blue;}   </style></head><body>    <p>welcome to <strong>gaodayue的部落格</strong></p></body></html>


strong分別從body和p中繼承了color屬性,但是由於p在繼承樹上離strong更近,因此strong中的文字最終繼承p的藍色。

規則二:繼承的樣式和直接指定的樣式衝突時,直接指定的樣式獲勝。

在上面的例子中,假如還指定了strong元素的樣式,如:

strong {color:red;}


那麼根據規則二,strong中的文字最終顯示為紅色。

規則三:直接指定的樣式發生衝突時,樣式權值高者獲勝。

樣式的權值取決於樣式的選取器,權值定義如下表。

CSS選取器 權值

標籤選取器 1
類別選取器 10
ID選取器 100
內聯樣式 1000
虛擬元素(:first-child等) 1
偽類(:link等) 10

可以看到,內聯樣式的權值>>ID選取器>>類別選取器>>標籤選取器,除此以外,後代選取器的權值為每項權值之和,比如”#nav .current a”的權值為100 + 10 + 1 = 111。

規則四:樣式權值相同時,後者獲勝。

考慮下面這種情況

<pclass="byline">Written    by <aclass="email"href="mailto:jean@cosmofarmer.    com">Jean    Graine de Pomme</a></p>12 .byline    a {color:red;}p    .email {color:blue;}


“.byline a”與”p .email”都直接指定了上面的a元素,且權值都為11,根據規則四,最終顯示藍色。

由於樣式表可以是外部的,也可以是內部的,規則四提醒我們要注意外部樣式表引入的順序(及<link>元素的順序),以及外部樣式表與內部樣式表的出現位置。一般來說,內部樣式表出現在所有外部樣式表的引入之後,一般是在</head>之前。

規則五:!important的樣式屬性不被覆蓋。

!important可以看做是萬不得已的時候,打破上述四個規則的”金手指”。如果你一定要採用某個樣式屬性,而不讓它被覆蓋的,可以在屬性值後加上!important,以規則四的例子為例,”.byline a {color:red !important;}”可以強行使連結顯示紅色。大多數情況下都可以通過其他方式來控制樣式的覆蓋,不能濫用!important。

以上這篇CSS樣式覆蓋規則全面瞭解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援topic.alibabacloud.com。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.