8-1 什麽是選擇器?
每一條css樣式聲明(定義)由兩部分組成,形式如下:
選擇器{ 樣式; }
在{}之前的部分就是“選擇器”,“選擇器”指明了{}中的“樣式”的作用對象,也就是“樣式”作用於網頁中的哪些元素。
<!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>我是好人!哈哈哈哈!</body> </html>
8-2 標簽選擇器
標簽選擇器其實就是html代碼中的標簽。
如右側代碼編輯器中的<html>、<body>、<h1>、<p>、<img>。
例如下面代碼:
p{ font-size:12px; line-height:1.6em; }
上面的css樣式代碼的作用:爲p標簽設置12px字號,行間距設置1.6em的樣式。
8-3 類選擇器
類選擇器在css樣式編碼中是最常用到的,如右側代碼編輯器中的代碼:可以實現爲“膽小如鼠”、“勇氣”字體設置爲紅色。
語法:.類選器名稱{css樣式代碼;}
注意:
1、英文圓點開頭
2、其中類選器名稱可以任意起名(但不要起中文)
使用方法:
第一步:使用合適的標簽把要修飾的内容標記起來,如下:
<span>膽小如鼠</span>
第二步:使用class="類選擇器名稱"爲標簽設置一個類,如下:
<span>膽小如鼠</span>
第三步:設置類選器css樣式,如下:
.stress{color:red;} /*類前面要加入一個英文圓點*/
8-4 ID選擇器
ID選擇器,那麽ID選擇器如何使用呢?
<body> <!--給元素id屬性賦值--> <div id='box'>我是一個div</div> </body> <style> /*#加上元素的id值,構成id選擇器*/ #box{ color:red; } </style>
我們也能實現讓div字體變成紅色的效果:
技術點的解釋:
1、使用ID選擇器,必須給標簽添加上id屬性,爲標簽設置id="ID名稱",而不是class="類名稱"。
2、ID選擇符的前面是井號(#)號,而不是英文圓點(.)。
3、id屬性的值既爲當前標簽的id,盡量見名思意,語義化。
8-5 類和ID選擇器的區別
相同點:可以應用於任何元素
不同點:
1、ID選擇器只能在文档中使用一次。與類選擇器不同,在一個HTML文档中,ID選擇器只能使用一次,而且僅一次。而類選擇器可以使用多次。
下面代碼是正確的:
<p>三年級時,我還是一個<span>膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span>勇氣</span>來回答老師提出的問題。</p>
而下面代碼是錯誤的:
<p>三年級時,我還是一個<span id="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span id="stress">勇氣</span>來回答老師提出的問題。</p>
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的作用。
8-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">三年級時,<span>我還是一個<span>膽小如鼠</span>的小女孩</span>,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。</p> <h1>食物</h1> <ul class="food"> <li>水果 <ul> <li>香蕉</li> <li>蘋果</li> <li>梨</li> </ul> </li> <br /> <li>蔬菜 <ul> <li>白菜</li> <li>油菜</li> <li>卷心菜</li> </ul> </li> </ul> </body> </html> <!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; } .first>span{ border:1px solid red; } </style> </head> <body> <p class="first">我還是一個<span>膽小如鼠<span>的孩子</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>
8-7 後代選擇器
包含選擇器,即加入空格,用於選擇指定標簽元素下的後輩元素。
如右側代碼編輯器中的代碼:
.first span{color:red;}
這行代碼會使第一段文字内容中的“膽小如鼠”字體顔色變爲紅色。
後代選擇器與子選擇器的區別:
子選擇器(child selector)僅是指它的直接後代,或者你可以理解爲作用於子元素的第一代後代。
後代選擇器是作用於所有子後代元素。後代選擇器通過空格來進行選擇,而子選擇器是通過“>”進行選擇。
總結:>作用於元素的第一代後代,空格作用於元素的所有後代。
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>後代選擇器</title> <style type="text/css"> .first span{color:red;} .food li{border:1px solid red;} </style> </head> <body> <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩.</p> <ul class="food"> <li>水果 <ul> <li>香蕉</li> <li>蘋果</li> <li>梨</li> </ul> </li> <br /> <li>蔬菜 <ul> <li>白菜</li> <li>油菜</li> <li>卷心菜</li> </ul> </li> </ul> </body> </html> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>後代選擇器</title> <style type="text/css"> .first span{ color:red; } .food li{ border solid green; } </style> </head> <body> <p class="first">三年級時,<span>膽小鬼</span></p> <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>
8-8 通用選擇器
通用選擇器是功能最強大的選擇器,它使用一個(*)號指定,它的作用是匹配html中所有標簽元素。
如下使用下面代碼使用html中任意標簽元素字體顔色全部設置爲紅色:
* {color:red;}
<!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>
8-9 偽類選擇器
爲什麽叫做偽類選擇符,它允許給html不存在的標簽(標簽的某種狀態)設置樣式。
比如給html中一個標簽元素的滑鼠滑過的狀態來設置字體顔色:
a:hover{color:red;}
上面一行代碼就是爲 a 標簽滑鼠滑過的狀態設置字體顔色變紅。
這樣就會使第一段文字内容中的“膽小如鼠”文字加入滑鼠滑過字體顔色變爲紅色特效。
關於偽選擇符:
到目前爲止,可以兼容所有瀏覽器的“偽類選擇符”就是 a 標簽上使用 :hover 了(其實偽類選擇符還有很多,尤其是 css3 中,但是因爲不能兼容所有瀏覽器,本教程只是講了這一種最常用的)。其實 :hover 可以放在任意的標簽上,比如說 p:hover,但是它們的兼容性也是很不好的,所以現在比較常用的還是 a:hover 的組合。
8-10 分組選擇器
爲html中多個標簽元素設置同一個樣式,可以使用分組選擇符(,)。
如下代碼爲右側代碼編輯器中的h1、span標簽同時設置字體顔色爲紅色:
h1,span{color:red;}
它相當於下面兩行代碼:
h1{color:red;} span{color:red;}
把右邊代碼編輯器中的第一段全部文字顔色設置爲綠色同時把第二段文字中的“簡單”文字顔色設置爲綠色
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>分組選擇符</title> <style type="text/css"> .first,#second span{color:green;} h1,span{color:green;} </style> </head> <body> <h1>勇氣</h1> <p class="first">三年級<span>膽小鬼</span></p> <p id="second">公開課<span>簡單</span></p> <img src="http://img.mukewang.com/52b4113500018cf102000200.jpg" /> </body> </html>