DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> CSS選擇器
CSS選擇器
編輯:CSS詳解     

“在 CSS 中,選擇器是一種模式,用於選擇需要添加樣式的元素。”最新的選擇器版本是CSS3,但使用廣泛的仍是CSS1和CSS2。

選擇器分為三種:基本選擇器、復合選擇器和偽元素選擇器。

一、選擇器匯總

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

二、基本選擇器

1. 通用選擇器:*

2. 元素選擇器:直接用元素名稱作為選擇器名

3. ID選擇器:#ID

4. 類選擇器:.類名,指定一類元素的樣式;元素.類名,指定某類裡面的特定元素的樣式;一個元素可以包含多個樣式,如:<span class="abc def">here</span>

5. 屬性選擇器:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [href] {                        //屬性選擇器,CSS2     color:orange; }   [type="password"] {             //匹配屬性值的屬性選擇器,CSS2     border:1px solid red; }   [href^="http”] {                //屬性值開頭匹配的屬性選擇器,CSS3     color:orange; }   [href$=".cn"]{                  //屬性值結尾匹配的屬性選擇器,CSS3     color:red; }   [href*="baidu"] {               //屬性值包含指定字符的屬性選擇器,CSS3     color:blue; }

三、復合選擇器

1. 分組選擇器

1 2 3 p,.abc,#name,[href] {     color:red; }

2. 後代選擇器:子代的深度不限

1 2 3 #name b {     color:orange; }

3. 子代選擇器:僅選擇下一層內的子元素

1 2 3 #name > b {     color:blue; }

4. 相鄰兄弟選擇器:匹配與第一個元素緊鄰的第二個元素

1 2 3 p + b {     color:red; }

5. 普通兄弟選擇器:匹配第一個元素後出現的所有第二個元素

1 2 3 p ~ b {     color:red; }

四、偽選擇器

偽選擇器都需要加上前置選擇器來限定范圍,否則默認范圍是<body>。

1. 偽元素選擇器:前置兩個冒號::

①::first-line  塊級首行(每一塊的第一行),示例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 <head>     <style>         ::first-line {             color:red;         }         div::first-line{             color:orange;         }     <style> </head> <body>     <p>this is red</p>     <div>this is orange</div> </body>

②::first-letter  塊級首字母

③::before,::after  在元素前插入,在元素後附加,示例:

1 2 3 4 5 6 7 8 9 10 11 12 13 <head>     <style>         a::before {             content:"點擊";         }         a::after {             content:"搜索";         }     <style> </head> <body>     <a href="www.baidu.com">百度</a> </body>

④::selection  設置鼠標選定時的文字顏色

2. 偽類選擇器:前置一個冒號:

①結構性偽類選擇器:根據元素在文檔中的位置選擇元素

  • 根元素選擇器:總是返回html元素

1 2 3 :root {     border:1px solid red; }
  • 子元素選擇器

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <head>     <style>         ul > li:first-child {             color:red;         }         ul > li:last-child {             color:blue;         }         ul > li:only-child {             color:green;         }         div > p:only-of-type {        //第一個元素僅包含一個第二個元素的選擇器             color:orange;         }     <style> </head> <body>     <ul>         <li>第一個子元素紅色</li>         <li>第二個子元素</li>         <li>第三個子元素藍色</li>     </ul>     <ul>         <li>唯一一個子元素綠色</li>     </ul>     <div>         <p>橙色</p>         <span>文字</span>     </div> </body>

  • :nth-child(n)系列

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <head>     <style>         ul > li:nth-child(1) {        //正數第一個             color:red;         }         ul > li:nth-last-child(1) {   //倒數第一個             color:blue;         }         div > p:nth-of-type(2) {      //第一個元素內,第二種元素的第二個             color:green;         }         div > p:nth-last-of-type(2) { //第一個元素內,第二種元素的倒數第二個             color:orange;         }     <style> </head> <body>     <ul>         <li>第一個子元素紅色</li>         <li>第二個子元素</li>         <li>第三個子元素藍色</li>     </ul>     <div>         <p>文字</p>         <span>文字</span>     </div>     <div>         <p>橙色</p>         <p>綠色</p>     </div> </body>

②UI偽類選擇器:根據元素的狀態匹配元素,主要用在表單裡面

  • enabled&disabled, checked, valid&invalid,required&optional

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 <head>     <style>         input:enabled {             border:1px solid blue;         }         input:disabled {             border:1px solid pink;         }         input:checked {             display:none    //隱藏該元素         }         input:valid {             border:1px solid green;         }         input:invalid {             border:1px solid red;         }         input:required {             border:1px solid orange;         }         /*input:optional {             border:1px solid yellow;         }*/     <style> </head> <body>     <form>         藍色邊框:<input type="text"><br>         粉色邊框:<input type="text" disabled><br>                  勾選框在這裡:<input type="checkbox"><br>         勾選框隱藏了:<input type="chechbox" checked><br>                  輸入非郵箱會有紅色邊框,輸入郵箱會有綠色邊框:<input type="email"><br>                  橙色邊框:<input type="text" required><br>         <button>提交</button>     </form> </body>

③動態偽類選擇器

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <head>     <style>         a:link {                    //超鏈接未點擊時的樣式             color:red;         }         a:visited {                 //超鏈接點擊後的樣式             color:yellow;         }         a:hover {                   //鼠標懸停時超鏈接的樣式             color:orange;         }         a:active {             color:green;            //鼠標點擊時超鏈接的樣式         }         input:focus {             border:1px solid red;   //輸入框獲得焦點時的樣式         }     <style> </head> <body>     <a href="www.baidu.com">百度</a>     <form>         <input type="text"><br>         <input type="text"><br>     </form>  </body>

④其他偽類選擇器

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <head>     <style>         a:not([href*="baidu"]) {    //反選,含baidu以外的超鏈接都變紅色             color:red;         }         :empty {                    //空元素,如<p></p>             display:none;         }         :lang(en) {                 //語言屬性為en的文字設為藍色             color:blue;         }         :target {                   //通過錨點定位到該元素時文字變綠             color:green;            //錨點定位地址:...index.html#myTarget         }     <style> </head> <body>     <a href="www.baidu.com">百度</a>     <a href="www.google.com">谷歌</a>           <form>         <input type="text"><br>         <input type="text"><br>     </form>           <p></p>          <b id="myTarget">錨點定位時變綠</b> </body>

本文出自 “Julia's Study Note” 博客,請務必保留此出處http://juliastudynote.blog.51cto.com/9954906/1657493

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved