CSS有3種工作機制:1.繼承 2.層疊 3.特指 (其中層疊原則是基于繼承和特指的)
1.繼承 :css中的祖先元素會向后代傳遞一樣東西:CSS屬性的值。body是所有元素的祖先,如果我們指定body{color:red;},那么文檔中的所有元素都繼承這一樣式。這就是為什么,我們在記事本程序寫了一行字以后,重命名為:xxx.html,在用不同瀏覽器打開時,會有不同的字體效果,因為每個瀏覽器都有自己的預定義樣式表,其中包括body中的字體屬性,而我們用瀏覽器打開我們的Html時,我們繼承了這個屬性。
當然,不是所有的屬性都能被繼承,能被繼承的屬性大多數和文本有關,比如顏色、字體、字號等。而有些屬性,被繼承下來沒有意義,或者被繼承下來會影響頁面的布局,比如涉及元素定位,margin,padding,border等屬性。
2.層疊 :也就是CSS中的C(cascading),主要是按照樣式來源和特指度來層疊。
a)樣式來源 :以下是瀏覽器層疊各個來源樣式的順序:
例子2 :嵌入樣式表和外部樣式表,選哪個(主要看瀏覽器按順序,后讀取的會覆蓋點前面讀取的),相同特指度的時候
.li1{
color:yellow;}
為黃色
例子3:選擇特指度高的(如按順序,應該選擇link的黃色,但是style中的特指度高 1-0-2 大于 1-0-1,所以選特指度高的紅色),后面讀取的特指度低的就不會覆蓋前面特指度高的。
demo.css
div #li1{
color:yellow;}
為紅色
例子4:行內style有最高優先級,前面的代碼不變,只在p中加了style blue,列表項立馬變成藍色雖然行內的有最高優先級,但是行內style本身就不常用(不方便移植,增加網頁大小)
例子5 :設定的樣式優于繼承的樣式,即使繼承的樣式特指度高(在li中加入em,em繼承了li的特指度是102,em本身的特指度是001,但是仍然選em)
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com