1.什么是選擇器?
每一條css樣式聲明(定義)由兩部分組成,形式如下:
選擇器{
樣式; }
在{}之前的部分就是“選擇器”,“選擇器”指明了{}中的“樣式”的作用對象,也就是“樣式”作用於網頁中的哪些元素。如下代碼編輯器中第7行代碼中的“body”就是選擇器。
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>選擇器</title> <style type="text/css"> body{ font-size:12px; color:red; } </style> </head> <body> <h1>HelloWorld</h1> </body> </html>
2.標簽選擇器
標簽選擇器其實就是html代碼中的標簽。如<html>、<body>、<h1>、<p>、<img>。例如下面代碼:
p{font-size:12px;line-height:1.6em;}
上面的css樣式代碼的作用:為p標簽設置12px字號,行間距設置1.6em的樣式。
3.類選擇器
類選擇器在css樣式編碼中是最常用到的
語法:
.類選器名稱{css樣式代碼;}
注意:
(1)、英文圓點開頭
(2)、其中類選器名稱可以任意起名(但不要起中文噢)
使用方法:
第一步:使用合適的標簽把要修飾的內容標記起來,如下:
<span></span>
第二步:使用class="類選擇器名稱"為標簽設置一個類,如下:
<span class="stress"></span>
第三步:設置類選器css樣式,如下:
.stress{color:red;}/*類前面要加入一個英文圓點*/
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>認識html標簽</title> <style type="text/css"> .stress{ color:red; } </style> </head> <body> <h1>Welcome</h1> <p>Hello,everybody!<br>My name is <span class="stress">...</span> , you can call me <span class="stress">...</span> .<br>Nice to meet you.</p> <img src="http://img.mukewang.com/52b4113500018cf102000200.jpg" > </body> </html>
運行結果:

4.ID選擇器
在很多方面,ID選擇器都類似於類選擇符,但也有一些重要的區別:
(1)、為標簽設置id="ID名稱",而不是class="類名稱"。
(2)、ID選擇符的前面是井號(#)號,而不是英文圓點(.)。
5.類和ID選擇器的區別
學習了類選擇器和ID選擇器,我們會發現他們之間有很多的相似處,是不是兩者可以通用呢?我們先來總結一下他們的相同點和不同點:
相同點:可以應用於任何元素
不同點:
(1)、ID選擇器只能在文檔中使用一次。與類選擇器不同,在一個HTML文檔中,ID選擇器只能使用一次,而且僅一次。而類選擇器可以使用多次。
( 2)、可以使用類選擇器詞列表方法為一個元素同時設置多個樣式。我們可以為一個元素同時設多個樣式,但只可以用類選擇器的方法實現,ID選擇器是不可以的(不能使用 ID 詞列表)。下面的代碼是正確的(完整代碼見右側代碼編輯器)
.stress{ color:red; } .bigsize{ font-size:25px; } <p>到了<span class="stress bigsize">三年級</span>下學期時,我們班上了一節公開課...</p>
上面代碼的作用是為“三年級”三個文字設置文本顏色為紅色並且字號為25px。
下面的代碼是不正確的(完整代碼見右側代碼編輯器)
#stressid{ color:red; } #bigsizeid{ font-size:25px; } <p>到了<span id="stressid bigsizeid">三年級</span>下學期時,我們班上了一節公開課...</p>
上面代碼不可以實現為“三年級”三個文字設置文本顏色為紅色並且字號為25px的作用。
6.子選擇器
還有一個比較有用的選擇器子選擇器,即大於符號(>),用於選擇指定標簽元素的第一代子元素。如下的代碼:
.food>li{border:1px solid red;}
這行代碼會使class名為food下的子元素li(水果、蔬菜)加入紅色實線邊框。
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>子選擇符</title> <style type="text/css"> .food>li{border:1px solid red;}/*添加邊框樣式(粗細為1px, 顏色為紅色的實線)*/ .first>span{ border:1px solid red; } </style> </head> <body> <p class="first">Hello, Welcome to <span><span>food net</span></span>. We provide fruit and vegetables.</p> <h1>食物</h1> <ul class="food"> <li>水果 <ul> <li>香蕉</li> <li>蘋果</li> <li>梨</li> </ul> </li> <li>蔬菜 <ul> <li>白菜</li> <li>油菜</li> <li>卷心菜</li> </ul> </li> </ul> </body> </html>
運行結果:

7.包含(后代)選擇器
包含選擇器,即加入空格,用於選擇指定標簽元素下的后輩元素。如下代碼:
.first span{color:red;}
請注意這個選擇器與子選擇器的區別,子選擇器(child selector)僅是指它的直接后代,或者你可以理解為作用於子元素的第一代后代。而后代選擇器是作用於所有子后代元素。后代選擇器通過空格來進行選擇,而子選擇器是通過“>”進行選擇。
總結:>作用於元素的第一代后代,空格作用於元素的所有后代。
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>子選擇符</title> 6 <style type="text/css"> 7 .food li{border:1px solid red;}/*添加邊框樣式(粗細為1px, 顏色為紅色的實線)*/ 8 .first span{ 9 border:1px solid red; 10 } 11 </style> 12 </head> 13 <body> 14 <p class="first">Hello, Welcome to <span>food net</span>. We provide fruit and vegetables.</p> 15 <h1>食物</h1> 16 <ul class="food"> 17 <li>水果 18 <ul> 19 <li>香蕉</li> 20 <li>蘋果</li> 21 <li>梨</li> 22 </ul> 23 </li> 24 <li>蔬菜 25 <ul> 26 <li>白菜</li> 27 <li>油菜</li> 28 <li>卷心菜</li> 29 </ul> 30 </li> 31 </ul> 32 </body> 33 </html>
運行結果:

8.通用選擇器
通用選擇器是功能最強大的選擇器,它使用一個(*)號指定,它的作用是匹配html中所有標簽元素,如下使用下面代碼使用html中任意標簽元素字體顏色全部設置為紅色,字號為20px:
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>* 選擇符</title> <style type="text/css"> * {color:red;} * {font-size:20px;} </style> </head> <body> <h1>詠梅</h1> <p>牆角數枝梅,凌寒獨自開。</p> <p>遙知不是雪,為有暗香來。</p> </body> </html>
運行結果:

9.偽類選擇符
更有趣的是偽類選擇符,為什么叫做偽類選擇符,它允許給html不存在的標簽(標簽的某種狀態)設置樣式,比如說我們給html中一個標簽元素的鼠標滑過的狀態來設置字體顏色:
a:hover{color:red;}
上面一行代碼就是為 a 標簽鼠標滑過的狀態設置字體顏色變紅。如下代碼中的“百度”文字加入鼠標滑過字體顏色變為紅色特效。
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>偽類選擇符</title> <style type="text/css"> a:hover{ color:red; font-size:20px; } </style> </head> <body> <h1>搜索</h1> <p>我們可以通過<a href="https://www.baidu.com/">百度</a>來搜索。</p> </body> </html>
運行結果:
========> 
關於偽選擇符:
關於偽類選擇符,到目前為止,可以兼容所有瀏鑒器的“偽類選擇符”就是 a 標簽上使用 :hover 了(其實偽類選擇符還有很多,尤其是 css3 中,但是因為不能兼容所有瀏覽器,只是講了這一種最常用的)。其實 :hover 可以放在任意的標簽上,比如說 p:hover,但是它們的兼容性也是很不好的,所以現在比較常用的還是 a:hover 的組合。
10.分組選擇符
當你想為html中多個標簽元素設置同一個樣式時,可以使用分組選擇符(,),如下代碼為右側代碼編輯器中的h1、span標簽同時設置字體顏色為紅色:
h1,span{color:red;}
它相當於下面兩行代碼:
h1{color:red;}
span{color:red;}
