關於CSS樣式衝突排序的一個小實驗

來源:互聯網
上載者:User

按照我們對CSS優先權的理解,最後定義的 CSS 樣式將會覆蓋在其之前定義的所有已經存在、或與之衝突的樣式,比如下面這個例子:

 代碼如下 複製代碼
p { color: red; background: yellow }
p { color: green }

  以上的段落最終將呈現綠色的字型,並帶有黃色的背景,這是因為最後定義的 color:green 將之前定義的 red 覆蓋掉了,至於黃色背景為何沒有消失,那是因為第二個 p 的定義中並沒有與之衝突的定義,因此它還是有效。

 代碼如下 複製代碼
p { color: red; background: yellow }
p { color: green }

   [ 可先修改部分代碼 再運行查看效果 ]
  或許你認為你已經理解了。你真的懂了嗎?好,我們來做個小測試。

 代碼如下 複製代碼
.red { color: red }
.green { color: green }
.blue { color: blue }
...
<p class="red green blue"></p>
<p class="green blue red"></p>
<p class="blue red green"></p>

  請問,最終顯示的時候,上面三個段落中的文字都將呈現何種顏色呢?
  請不要急著運行下面的代碼,你思考思考,會是什麼色彩??????
  好了,你已經思考定了,我們看啟動並執行效果吧:

 代碼如下 複製代碼

.red { color: red }
.green { color: green }
.blue { color: blue }




   [ 可先修改部分代碼 再運行查看效果 ]
  答案是它們都顯示為 blue ,也就是藍色,儘管每個段落都以不同順序應用了三個段落樣式,看上去應該按照應用樣式的順序來決定顏色,比如,第一個顯示為 blue ,第二個顯示為 red ,第三個顯示為 green ,其實這是錯誤的,這與應用樣式的順序無關,它們最終都聽從最後指定的樣式,顏色皆為 blue !以後遇到類似的問題請不要苦惱了,因為上面的實驗已經給了你答案。 

相關文章

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.