有的時候 css 真的十分調皮,明明我們給乙個元素指定了樣式,但是在頁面上卻沒有一點改變
這時我們就要考慮是不是別處指定的樣式覆蓋了當前指定的樣式呢?
所以了解一下樣式覆蓋規則還是十分有必要的,對於乙個元素的某個屬性而言,表現出來的樣式會遵循以下的規則
(1)內聯樣式 > 內部樣式表 / 外部樣式表
hello world
【最終效果(內聯樣式 優先)】hello world
(2)在內部樣式表 / 外部樣式表中,直接指定的樣式 > 繼承祖先的樣式
hello world
【最終效果(直接指定的樣式 優先)】hello world
(3)對於直接指定的樣式,權值大的優先;如果權值相同,後定義的優先【重要】
當直接指定的樣式發生衝突時,根據定義該樣式的選擇器的權值大小進行比較,權值大的優先選擇器的權值計算定義如下:
hello world
【最終效果(權值大的優先)】hello world
(4)對於繼承祖先的樣式,最近祖先優先
當繼承祖先的樣式發生衝突時,根據繼承的關係進行比較,最近祖先優先
hello world
【最終效果(最近祖先優先)】hello world
(5)!important 宣告無視上面的規則,其指定的樣式永遠不被覆蓋【重要】
其實這樣的說法或許還有些許不準確,因為(有且僅有) !important 宣告可以覆蓋 !important 宣告
hello world
【最終效果(!important 宣告優先)】hello world
【 閱讀更多 css 系列文章,請看 css學習筆記 】
CSS學習筆記 三 樣式宣告
在這篇文章中你能看到有關於 css 樣式設定的常用屬性 1 背景顏色 可以使用background color屬性為元素設定背景顏色,它接受任何合法的顏色值,預設是transparent 注意,background color 屬性不能繼承 2 背景 可以使用background image屬性為元...
Less學習筆記4 樣式混合
對於同乙個頁面元素 在less檔案中設定box的寬度 test width 300px box 此時若還要給div這個元素加乙個border的樣式,border原來是 現在就可以 box編譯以後的.box為 box樣式混合帶引數 假設有乙個border需要在不同的樣式中需求不同 先寫乙個關於bord...
前端學習(3)樣式表 CSS
也叫作層疊樣式表或者級聯樣式表,用於定義html元素的顯示效果,原本的樣式是在html中內嵌定義的,css的出現使得分工更加清晰 內嵌樣式修改文字顏色 doctype html utf 8 內嵌樣式 title text css h1 p body 紅色 h1 藍色 p body html 內嵌樣式...