CSS規則淺析

CSS規則淺析

 

首先,要知道CSS規則,我們要先了解CSS的定義。

CSS(英文全稱:CascadingStyle Sheets)意思爲樣式層疊表。是一種用來表現HTML(標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等文件樣式的計算機語言。CSS不僅可以靜態地修飾網頁,還可以配合各種腳本語言動態地對網頁各元素進行格式化。

 

一般規則是:

1)樣式有繼承性,子元素可以繼承父元素的樣式

能繼承的樣式有文本相關、列表相關、顏色color等;不能繼承的樣式:border,margin,padding,background-color等。

2)CSS規則大小寫不敏感,不過存在一個例外:如果涉及到與 HTML 文檔一起工作的話,則要注意class 和 id 名稱的大小寫,有些瀏覽器對此是敏感的。

3)*可以消除瀏覽器的默認值,比如:*{margin:0;padding:0;}

如果是大型網站,則推薦這樣html,body,div,span,applet,object,iframe,h1,h2,p,a{margin:0;padding:0;}

而不是*{margin:0;padding:0;}

因爲 css 通配符 “*”會將網站內所有元素的默認值重設,這在大型網站會加重客戶端的負擔,瀏覽器運行速度變慢。但如果開發的是小型站點或企業網站,頁面元素不是很多,使用CSS 通配符造成的性能影響可以忽略。

4)如果樣式規則出現錯誤,通常這個錯誤以下規則都被忽略。

 

由上我們知道CSS意爲樣式層疊表,就如字面上的意思,CSS就是把樣式進行層疊。所謂層疊:有多種方式可設置樣式,如果同時用多種方式設置了樣式,則多重樣式將層疊爲一個。

瀏覽器進行層疊的步驟是:

1)  收集所有樣式

2)  找元素匹配的樣式

3)  規則排序

4)  處理衝突

 

樣式層疊並不是隨便進行層疊的,它們層疊是有一些規則的,在瞭解規則前,我們先了解下樣式的分類,樣式分爲三種:內聯樣式,內部樣式,外部樣式。

而這三種樣式的優先級爲內聯樣式>外(內)部樣式,而內部樣式和外部樣式屬於同一級別的。

 

如果我們要判斷某個p元素中的文本顏色是什麼,即樣式color是什麼?

1)  首先,看該元素是否有內聯樣式color,如果有則就是它了,否則繼續下面步驟

2)  看該元素是否有內部樣式color和外部樣式color,否則繼續下面步驟

3)  看該元素是否有看繼承情況,否則繼續下面步驟

4)  都沒有,使用瀏覽器默認值

在上面的2)中如果多個選擇器選擇了該元素呢?如:<p class=”c1 c2 c3”>…</p>,假如多個選擇器中都定義了color屬性,也就是有了衝突,哪個規則起作用?哪個規則更“特定”則起作用。

如果一樣“特定”呢?則看位置順序,寫的位置在最後的起作用。---所謂更“特定”可以理解爲選擇器選擇的元素範圍更小,也可用選擇器的權值來比較:id選擇器100、class選擇器10、元素選擇器1,內聯樣式不是選擇器,但權值最高,可以認爲是1000。例如:

p { color: red;}//權值爲1

.c1 {color: green;} //權值爲10

p.c1 {color: blue;} //權值爲11

p.c2{color: yellow;} //權值爲11

p.c3{color: #ccc;} //權值爲11

總的而言,樣式層疊優先次序如下:

!important > 內聯樣式 > 外部樣式(內部樣式) > 繼承 > 讀者設置(瀏覽器用戶) > 默認值(瀏覽器)。

注:

1)在外部樣式(內部樣式)中按選擇器的權值來確定(id > class > 元素)

2)如果權值相等,則它們的優先級取決於它們的先後順序,誰放在後方,誰就優先。

3)特別地,加了!important;的優先級最高。如:p{color:red!important;},實際上就是強制提升優先級。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章