前端開發系列(九)CSS教程(4)

一、 CSS的繼承、層疊和特殊性

1.1、繼承

CSS 的某些樣式是具有繼承性的,那麼什麼是繼承呢?繼承是一種規則,它允許樣式不僅應用於某個特定 html 標籤元素,而且應用於其後代。比如下面代碼:如某種顏色應用於 p標籤,這個顏色設置不僅應用 p標籤,還應用於 p標籤 中的所有子元素文本,這裏子元素爲 span標籤
p{color:red;}<p>三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
p 中的文本與 span 中的文本都設置爲了紅色。但注意有一些css樣式是不具有繼承性的。如border:1px solid red;

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>繼承</title>
		<style type="text/css">
			p{color:red;}
			p{border:1px solid red;}
		</style>
	</head>
	<body>
		<h1>勇氣</h1>
		<p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。</p>
		<p id="second">到了三年級下學期時,我們班上了一節公開課,老師提出了一個很<span>簡單</span>的問題,班裏很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說着:"我來,我來。"我環顧了四周,就我沒有舉手。</p>
	</body>
</html>

運行結果:
在這裏插入圖片描述
在上面例子中它代碼的作用只是給 p標籤 設置了邊框爲1像素、紅色、實心邊框線,而對於子元素 span 是沒用起到作用的。

1.2、特殊性

有的時候我們爲同一個元素設置了不同的CSS樣式代碼,那麼元素會啓用哪一個CSS樣式呢?我們來看一下面的代碼:

p{
	color:red;
}
.first{
	color:green;
}
<p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>

p.first 都匹配到了 p 這個標籤上,那麼會顯示哪種顏色呢?green是正確的顏色,那麼爲什麼呢?是因爲瀏覽器是根據權值來判斷使用哪種 css 樣式的,權值高的就使用哪種 css 樣式。
下面是權值的規則:
標籤的權值爲1,類選擇符的權值爲10,ID選擇符的權值最高爲100。例如下面的代碼:

p{color:red;}          /*權值爲1*/
p span{color:green;}   /*權值爲1+1=2*/
.warning{color:white;} /*權值爲10*/
p span.warning{color:purple;} /*權值爲1+1+10=12*/
#footer .note p{color:yellow;} /*權值爲100+10+1=111*/

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

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>特殊性</title>
		<style type="text/css">
			p{color:red;}
			.first{color:blue;} /*因爲權值高顯示爲藍色*/
			span{color:red;}    /*設置爲紅色*/
			p span{color:greenyellow;}
		</style>
	</head>
	<body>
		<h1>我的夢想</h1>
		<p class="first">我的夢想<span>火之意志</span></p>
		<p id="second">我的夢想</p>
	</body>
</html>

運行結果:
在這裏插入圖片描述

1.3、層疊

我們來思考一個問題:如果在 html 文件中對於同一個元素可以有多個 css 樣式存在並且這多個 css 樣式具有相同權重值怎麼辦?好,這一小節中的層疊幫你解決這個問題。
層疊 就是在 html 文件中對於同一個元素可以有多個 css 樣式存在,當有相同權重的樣式存在時,會根據這些 css 樣式的前後順序來決定,處於最後面的 css 樣式會被應用。

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>層疊</title>
		<style type="text/css">
			p{color:red;}
			p{color:blue;}
		</style>
	</head>
	<body>
		<h1>勇氣</h1>
		<p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。</p>
		<p id="second">到了三年級下學期時,我們班上了一節公開課,老師提出了一個很<span>簡單</span>的問題,班裏很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說着:"我來,我來。"我環顧了四周,就我沒有舉手。</p>
	</body>
</html>

運行結果:
在這裏插入圖片描述

1.4、重要性

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

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>!important</title>
		<style type="text/css">
			p{color:blue!important;}
			p.first{color:red;}
		</style>
	</head>
	<body>
	  <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
	</body>
</html>

運行結果:
在這裏插入圖片描述


此篇博客代碼下載地址:CSS教程4代碼下載
博主的所有博客目錄如下:博客文章目錄彙總
Java面試部分的博客目錄如下:Java筆試面試目錄

轉載請標明出處,原文地址:https://blog.csdn.net/weixin_41835916 如果覺得本文對您有幫助,請點擊支持一下,您的支持是我寫作最大的動力,謝謝。
這裏寫圖片描述

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