CSS 選擇器

鑑於部分選擇器,偶爾要使用的時候都要重新查一次,特以本篇整理出來,並考慮到瀏覽器相容性問題,還是將版本區分為CSS3以及CSS2.1以前,以減少找不到問題點的窘境。

CSS2.1以前的選擇器

選擇器作用範圍範例
*萬用字元 = 全選 
E任何一個 指定的 html tag
(E表任意的 HTML tag)
 
E F任何包含在E裡面的F,無論階層。
(E與F均為任意的 HTML tag)
<E>
 <F></F>
 <G>
   <F></F>
 </G>
</E>
E,F所有的 E以及F 
E > F任何E的第一階子元素F。<E>
 <F></F>
 <G>
   <F></F>
 </G>
</E>
E + F任何一個立即跟在E後面的F<E>
 <F></F>
</E>
<F></F>
<F></F>
E:first-child任何一個E,且為其父階層的第一個元素<D>
 <E></E>
 <E></E>
</D>
<D>
 <G></G>
 <E></E>
</D>
E:first-letterE內容中的第一個字 
E:first-lineE內容中的第一行 
E:before
E:after
在E的前面或後面插入內容 
E:link
E:visited
E:active
E:hover
E:focus

主要應用於連結標籤<a>,
:link    表尚未訪問過的連結
:visited 表已訪問過的連結
:active 表按下連結時
:hover  滑鼠停留在連結上時
:focus  按下連結時

 
E[foo]任一個擁有foo屬性的E,無論屬性值為何<E foo=""></E>
E[foo="warning"]任一個擁有foo屬性的E,且其屬性值為"warning"<E foo="warning"></E>
E[foo~="warning"]任一個擁有foo屬性的E,且其屬性值中包含"warning"(以空格區分)<E foo="warnings"></E>
<E foo="warning"></E>
<E foo="warning test"></E>
E.warning類別選擇器,任何一個class屬性值包含"warning"的E,等同於E[class~="warning"]<E class="warning"></E>
E#myidID選擇器,任何一個id屬性值為 "myid"的E<E id="myid"></E>

CSS3中新增的選擇器

選擇器作用範圍範例
E ~ F任何E以後,且與E位於同階層的F<G>
  <F></F>
  <E><F></F></E>
  <F></F>
</G>
E:first-of-type任何一個作為父階層底下的第一個E<D>
 <E></E>
 <E></E>
</D>
<D>
 <G></G>
 <E></E>
</D>
E:last-of-type任何一個作為父階層底下的最後一個E<D>
 <E></E>
 <E></E>
</D>
<D>
 <E></E>
 <E></E>
 <G></G>
</D>
E:only-of-type任何一個作為父階層底下的唯一的一個E<D>
 <E></E>
 <G></G>
</D>
<D>
 <E></E>
 <E></E>
 <G></G>
</D>
E:only-child任何一個E,且為其父階層底下的唯一元素<D>
 <E></E>
</D>
<D>
 <E></E>
 <G></G>
</D>
E:nth-child(n)

任何一個E,且為其父階層底下的第n個元素,(範例n=2)

<D>
 <E></E>
</D>
<D>
 <G></G> 
 <E></E> 
</D>
E:nth-last-child(n)任何一個E,且為其父階層底下由後數來的第n個元素,(範例n=2)<D>
 <E></E>
</D>
<D>  
 <E></E>
 <G></G>
</D>
E:nth-of-type(n)任何一個作為父階層底下的第n個E ,(範例n=2)<D>
 <G></G>
 <E></E> 
 <E></E>
</D>
<D>  
 <G></G> 
 <E></E> 
</D>
E:nth-last-of-type(n)任何一個作為父階層底下由後數來的第n個E ,(範例n=2)<D>
 <G></G>
 <E></E> 
 <E></E>
</D>
<D>  
 <G></G> 
 <E></E> 
</D>
E:last-child任何一個E,且為其父階層的最後一個元素<D>
 <E></E> 
 <E></E>
 <G></G>
</D>
<D>  
 <G></G> 
 <E></E> 
</D>
:root文件的根元素,一般來說就是<html> 
E:empty任何一個完全無任何子元素及內容的E 
E:target目前網址列上指向的錨點 
E:enabled
E:disabled
E:checked
主要應用在<input>,分別為選取「啟用中」、「停用中」、「已選取」的表單元素 
:not(E)所有非E的元素 
::selection用以指定元素被選取時的狀態,firefox需利用前綴-moz-方能支援 
E[foo^="warning"]任一個擁有foo屬性的E,且其屬性值開始於為"warning"<E foo="warning test "></E>
<E foo="test warning "></E>
E[foo$="warning"]任一個擁有foo屬性的E,且其屬性值結束於"warning"<E foo="warnings test"></E>
<E foo="test warning"></E>
E[foo*="warning"]任一個擁有foo屬性的E,且其屬性值包含"warning",無論是否有空格<E foo="warnings_test"></E>
<E foo="test warning"></E>
<E foo="warnings"></E>

<E foo="test"></E>
E.warning類別選擇器,任何一個class屬性值包含"warning"的E,等同於E[class~="warning"]<E class="warning"></E>
E#myidID選擇器,任何一個id屬性值為 "myid"的E<E id="myid"></E>