1. 程式人生 > >胡根得 天行健,君子以自強不息。

胡根得 天行健,君子以自強不息。

1、什麼是CSS選擇器?

  CSS選擇器,目的是指定CSS要作用的標籤物件,今天來了解一下CSS的基本選擇器和擴充套件選擇器。

2、基本選擇器

這裡介紹四種基本選擇器。

  (1)標籤選擇器(這個時候的css程式碼以html標籤來決定作用於誰)

<span style="font-size:14px;">			/*
			 * 標籤選擇器
			 */
			p {
				color:#ff0000;
				font-size:30px;
			}</span>

  這個表示將p標籤中的字型顏色設定為#ff0000,字型大小設定為30畫素。格式為:“標籤{ }”。

  (2)類選擇器

<span style="font-size:14px;">			/*
			 class選擇器,類選擇器
			 */
			.p_1 {
				color:green;
				font-size:20px;
			}</span>

  類選擇器表示將class屬性為p_1的標籤字型顏色設定為green,大小為20畫素。格式為:“.class屬性名{ }”。

  (3)ID選擇器

<span style="font-size:14px;">			#p_1 {
				color:#0f0f0f;
				font-size:50px;
			}</span>
  同理,ID選擇器指將ID屬性為p_1的標籤顏色設定為0f0f0f,字型大小為50畫素。格式為:“#ID屬性名{ }”。

  (4)通用選擇器

<span style="font-size:14px;">    *{
        font-size: 12px;
    }</span>

  通用選擇器表示將所有標籤字型屬性設定為12畫素。格式為:“ * { }”。

3、擴充套件選擇器

當基本的選擇器不能夠完全符合需求時,就出現了擴充套件選擇器,這裡介紹三種擴充套件選擇器。

  (1)關聯選擇器

  需求:我需要p標籤下的b標籤顏色變紅,而不需要所有的p標籤下的顏色變紅。這時候需要關聯選擇器:

<span style="font-size:14px;">			p b {  
				color:red;
			}</span>
  這就表示p標籤下的b標籤顏色變紅,而不是所有的p標籤變紅。

  那麼,如果我的HTML程式碼是這樣:

<span style="font-size:14px;">		<table >
			<tr>
				<td>胡根得</td>
			</tr>
		</table>
		<table>
			<tr>
				<td>岳飛</td>
			</tr>
		</table></span>
  我想要“胡根得”變紅,而不需要“岳飛”變紅,要怎麼辦呢?

  我們可以使用類選擇器或ID選擇器與擴充套件選擇器相結合。以與類選擇器結合為例,首先將HTML程式碼變為:

<span style="font-size:14px;">		<table class="name">
			<tr>
				<td>胡根得</td>
			</tr>
		</table>
		<table>
			<tr>
				<td>岳飛</td>
			</tr>
		</table></span>
  然後:
<span style="font-size:14px;">			.name tr td {
				color:red;
			}</span>
  這就表示:將class屬性名為name的標籤下的 tr 標籤下的 td標籤顏色變紅。

  (2)組合選擇器

  需求:我的HTML程式碼如下,我需要將p、b、i、u標籤下的顏色全部變紅,怎麼辦?

<span style="font-size:14px;">		<p>aa</p>
		<b>bb</b><br/>
		<i>cc</i><br/>
		<u>dd</u><br/></span>
  為方便起見,我們可以使用組合選擇器:
<span style="font-size:14px;">			p, i, u, b {
				color:red;
			}</span>

  這表示將p、b、i、u標籤下的顏色全部變紅,省去了用標籤選擇器的一個一個設定。

  (3)偽元素選擇器 

  HTML中預先定義好的一些選擇器,稱為偽元素。是因為CSS的術語。

  偽元素格式標籤名:偽元素;類名:偽元素。

  常見的有:

<span style="font-size:14px;">		a:link  超連結未點選狀態。
		a:visited 被訪問後的狀態。
		a:hover 游標移到超連結上的狀態(未點選)。
		a:active 點選超連結時的狀態。</span>
  例項:

  HTML程式碼:

<span style="font-size:14px;">		<a href="http://www.baidu.com">百度</a>
		<a href="http://www.sina.com">新浪</a>
		<a href="http://www.youku.com">優酷</a></span>
  CSS程式碼:
<span style="font-size:14px;">		<style type="text/css">
			a:link {
				color:red;
			}
			
			a:visited {
				color:blue;
			}
			
			a:hover{
				color:green;
				text-decoration:line-through; //當滑鼠放上去時候為標籤下內容加上貫穿線
			}
			
			a:active{
				color:yellow;
			}
			
			a {
				text-decoration:none; //表示對a標籤下內容無額外裝飾
			}
		</style></span>
  表示a標籤下的內容在未點選狀態下為紅色;游標移到標籤上時候為綠色;點選時為黃色;訪問後為藍色。

  附:CSS選擇器合集:

選擇器 例子 例子描述
.intro 選擇 class=”intro” 的所有元素。
#id #firstname 選擇 id=”firstname” 的所有元素。
* * 選擇所有元素。
p 選擇所有 <p> 元素。
div,p 選擇所有 <div> 元素和所有 <p> 元素。
div p 選擇 <div> 元素內部的所有 <p> 元素。
div>p 選擇父元素為 <div> 元素的所有 <p> 元素。
div+p 選擇緊接在 <div> 元素之後的所有 <p> 元素。
[target] 選擇帶有 target 屬性所有元素。
[target=_blank] 選擇 target=”_blank” 的所有元素。
[title~=flower] 選擇 title 屬性包含單詞 “flower” 的所有元素。
[lang|=en] 選擇 lang 屬性值以 “en” 開頭的所有元素。
:link a:link 選擇所有未被訪問的連結。
a:visited 選擇所有已被訪問的連結。
a:active 選擇活動連結。
a:hover 選擇滑鼠指標位於其上的連結。
input:focus 選擇獲得焦點的 input 元素。
p:first-letter 選擇每個 <p> 元素的首字母。
p:first-line 選擇每個 <p> 元素的首行。
p:first-child 選擇屬於父元素的第一個子元素的每個 <p> 元素。
p:before 在每個 <p> 元素的內容之前插入內容。
p:after 在每個 <p> 元素的內容之後插入內容。
p:lang(it) 選擇帶有以 “it” 開頭的 lang 屬性值的每個 <p> 元素。
a[src^=”https”] 選擇其 src 屬性值以 “https” 開頭的每個 <a> 元素。
a[src$=”.pdf”] 選擇其 src 屬性以 “.pdf” 結尾的所有 <a> 元素。
a[src*=”abc”] 選擇其 src 屬性中包含 “abc” 子串的每個 <a> 元素。
p:first-of-type 選擇屬於其父元素的首個 <p> 元素的每個 <p> 元素。
p:last-of-type 選擇屬於其父元素的最後 <p> 元素的每個 <p> 元素。
p:only-of-type 選擇屬於其父元素唯一的 <p> 元素的每個 <p> 元素。
p:only-child 選擇屬於其父元素的唯一子元素的每個 <p> 元素。
p:nth-child(2) 選擇屬於其父元素的第二個子元素的每個 <p> 元素。
p:nth-last-child(2) 同上,從最後一個子元素開始計數。
p:nth-of-type(2) 選擇屬於其父元素第二個 <p> 元素的每個 <p> 元素。
p:nth-last-of-type(2) 同上,但是從最後一個子元素開始計數。
p:last-child 選擇屬於其父元素最後一個子元素每個 <p> 元素。
:root :root 選擇文件的根元素。
p:empty 選擇沒有子元素的每個 <p> 元素(包括文字節點)。
#news:target 選擇當前活動的 #news 元素。
input:enabled 選擇每個啟用的 <input> 元素。
input:disabled 選擇每個禁用的 <input> 元素
input:checked 選擇每個被選中的 <input> 元素。
:not(p) 選擇非 <p> 元素的每個元素。
::selection 選擇被使用者選取的元素部分。

  小結:CSS是為美化和優化HTML程式碼而存在,通過使用CSS使得HTML更加簡潔、高效。而CSS中的選擇器目的是指定CSS要作用的標籤物件,而且基本選擇器和擴充套件選擇器可以結合使用,發揮更大的功效。