CSS引用方式有3種,三種分別為:外部引入、內部引入、行內樣式,下面一 一進行介紹。
1.外部引入:CSS代碼在一個獨立的文件中,HTML通過Link標簽引入到頁面。
代碼格式:<link rel=“stylesheet” href="../css/index.css">;
注:1.link標簽是head的子元素;
2.link是空元素,用於引入外部資源;
2.內部引入:將CSS代碼放入HTML文檔中的style元素
代碼格式:<style type="text/css">
p{
font-size(文字大小):10px;
}
</style>
3.行內樣式:CSS代碼寫在某個開始標記的style屬性中,不寫選擇器。
代碼格式:<p style="屬性值">元素內容</p>;
注:style所屬的標簽在body里;
樣式層疊機制:
當有聲明沖突時,瀏覽器會自動觸發層疊機制。什么是聲明沖突呢?通俗來說就是同一個樣式的不同值應用到同一個標簽,舉個簡單的例子:
相信小伙伴看到這個都知道結果是p標簽的字體顏色為綠色,但為什么是綠色呢,這也就是今天要說的層疊機制。
首先說一下層疊的過程:1.比較優先級 2.比較特殊性 3.比較源次序,下面一 一進行介紹
1.比較優先級:用戶樣式表>作者樣式表>瀏覽器的樣式表
一個聲明的優先級,與它的來源和重要性有關,
來源:
重要性:若屬性值后跟上!improtant則表示這是一條重要聲明,反之為普通聲明,聲明相同時,重要聲明勝出,普通聲明淘汰。將上方的例子修改:
一般在使用ui組件的時候,會常常用到重要聲明。
2.比較特殊性:當發生沖突時,特殊性高的保留,特殊性低的淘汰。
特殊性從高到低:行內樣式->ID選擇器->類選擇器->元素選擇器->通配符選擇器
一個聲明的特殊性,取決於規則使用范圍的大小,具體規則:每一次沖突的聲明都會生成4個字母(a,b,c,d),首先比較a,如果a相同,則比較b...以此類推。廢話不多說,直接來看a,b,c,d具體是如何生成的
a:當聲明是行內樣式,則為1,否則為0
b:聲明中ID選擇器的個數
c:聲明中類選擇器、偽類選擇器和屬性選擇器的個數和
d:聲明中元素選擇器、偽元素選擇器的個數和
通配符選擇器的特殊性為0,下面來個例子解釋:
由於考慮到行內樣式的特殊性最高以及id選擇器的唯一性,所以就只考慮c和d的規則
相信小伙伴們都猜到了結果,
3.比較源次性:最后出現的聲明勝出,其他的全部淘汰,這一條比較簡單,就如同最開始的例子一樣。
本人小白,根據自己理解寫的,寫的不對的地方麻煩大神指點