CSS的繼承 層疊和特殊性

2021-07-28 02:25:41 字數 2810 閱讀 9003

css的某些樣式是具有繼承性的,那麼什麼是繼承呢?繼承是一種規則,它允許樣式不僅應用於某個特定html標籤元素,而且應用於其後代。比如下面**:如某種顏色應用於p標籤,這個顏色設定不僅應用p標籤,還應用於p標籤中的所有子元素文字,這裡子元素為span標籤。

p三年級時,我還是乙個膽小如鼠的小女孩。

可見右側結果視窗中p中的文字與span中的文字都設定為了紅色。但注意有一些css樣式是不具有繼承性的。如border:1px solid red;

p三年級時,我還是乙個膽小如鼠的小女孩。

在上面例子中它**的作用只是給p標籤設定了邊框為1畫素、紅色、實心邊框線,而對於子元素span是沒用起到作用的。

**:三年級時,我還是乙個膽小如鼠的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。

到了三年級下學期時,我們班上了一節公開課,老師提出了乙個很簡單的問題,班裡很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環顧了四周,就我沒有舉手。

效果:

有的時候我們為同乙個元素設定了不同的css樣式**,那麼元素會啟用哪乙個css樣式呢?我們來看一下面的**:

p.first

三年級時,我還是乙個膽小如鼠的小女孩。

p和.first都匹配到了p這個標籤上,那麼會顯示哪種顏色呢?green是正確的顏色,那麼為什麼呢?是因為瀏覽器是根據權值來判斷使用哪種css樣式的,權值高的就使用哪種css樣式。

下面是權值的規則:

標籤的權值為1,類選擇符的權值為10,id選擇符的權值最高為100。例如下面的**:

p /*權值為1*/

p span /*權值為1+1=2*/

.warning /*權值為10*/

p span.warning /*權值為1+1+10=12*/

#footer .note p /*權值為100+10+1=111*/

注意:還有乙個權值比較特殊--繼承也有權值但很低,有的文獻提出它只有0.1,所以可以理解為繼承的權值最低。

**三年級時,我還是乙個膽小如鼠的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。

到了三年級下學期時,我們班上了一節公開課,老師提出了乙個很簡單的問題,班裡很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環顧了四周,就我沒有舉手。

效果

我們來思考乙個問題:如果在html檔案中對於同乙個元素可以有多個css樣式存在並且這多個css樣式具有相同權重值怎麼辦?好,這一小節中的層疊幫你解決這個問題。

層疊就是在html檔案中對於同乙個元素可以有多個css樣式存在,當有相同權重的樣式存在時,會根據這些css樣式的前後順序來決定,處於最後面的css樣式會被應用。

如下面**:pp

三年級時,我還是乙個膽小如鼠的小女孩。

最後 p 中的文字會設定為green,這個層疊很好理解,

理解為後面的樣式會覆蓋前面的樣式。

所以前面的css樣式優先順序就不難理解了:

內聯樣式表(標籤內部)> 嵌入樣式表(當前檔案中)> 外部樣式表(外部檔案中)。

**三年級時,我還是乙個膽小如鼠的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。

到了三年級下學期時,我們班上了一節公開課,老師提出了乙個很簡單的問題,班裡很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環顧了四周,就我沒有舉手。

效果

我們在做網頁**的時,有些特殊的情況需要為某些樣式設定具有最高權值,怎麼辦?這時候我們可以使用!important來解決。

如下**:pp

三年級時,我還是乙個膽小如鼠的小女孩。

這時 p 段落中的文字會顯示的red紅色。

注意:!important要寫在分號的前面

這裡注意當網頁製作者不設定css樣式時,瀏覽器會按照自己的一套樣式來顯示網頁。並且使用者也可以在瀏覽器中設定自己習慣的樣式,比如有的使用者習慣把字型大小設定為大一些,使其檢視網頁的文字更加清楚。這時注意樣式優先順序為:瀏覽器預設的樣式 < 網頁製作者樣式 < 使用者自己設定的樣式,但記住!important優先順序樣式是個例外,權值高於使用者自己設定的樣式。

**三年級時,我還是乙個膽小如鼠的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。

到了三年級下學期時,我們班上了一節公開課,老師提出了乙個很簡單的問題,班裡很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環顧了四周,就我沒有舉手。

效果

繼承、特殊性,層疊,重要性的區分。

繼承是指標籤的樣式可以由子代繼承,但

有些標籤是不能繼承的,eg:border。

特殊性指用用

權重來確定最後起作用的樣式,id=100,class=10,標籤=1,繼承=0.1;

層疊指當權重相同時,

後面的樣式覆蓋前面的樣式。

important的使用。

參考:第9章 css的繼承、層疊和特殊性 

css繼承 層疊 特殊性

1 什麼是繼承?允許樣式不僅應用於某個特定html標籤元素,而且應用於其後代。例如 p 三年級時,我還是乙個膽小如鼠的小女孩。結果為 三年級時,我還是乙個膽小如鼠的小女孩。2 並非所有的css樣式都具有繼承性?例如 border 1px solid red p 三年級時,我還是乙個膽小如鼠的小女孩。...

CSS的繼承 層疊和特殊性

css的某些樣式是具有繼承性的,那麼什麼是繼承呢?繼承是一種規則,它允許樣式不僅應用於某個特定html標籤元素,而且應用於其後代。比如下面 如某種顏色應用於p標籤,這個顏色設定不僅應用p標籤,還應用於p標籤中的所有子元素文字,這裡子元素為span標籤。p 三年級時,我還是乙個膽小如鼠span 的小女...

初學css 繼承 層疊和特殊性

css的某些樣式是具有繼承性的,那麼什麼是繼承呢?繼承是一種規則,它允許樣式不僅應用於某個特定html標籤元素,而且應用於其後代。比如下面 如某種顏色應用於p標籤,這個顏色設定不僅應用p標籤,還應用於p標籤中的所有子元素文字,這裡子元素為span標籤。p 三年級時,我還是乙個膽小如鼠的小女孩。p中的...