CSS3選擇器詳解

jopen 8年前發布 | 30K 次閱讀 CSS3 CSS 前端技術

1.常用選擇器

1.1標簽選擇器

p{ }/*選擇標簽名為p的元素*/

1.2類選擇器

.box{ }/*選擇class名為box的元素*/

1.3ID選擇器

#pid{ }/*選擇id名為pid的元素*/

1.4通配符選擇器

*{ }/*選擇頁面中所有的元素*/

1.5選擇器前綴

div.bd{}/*選中class名為bd且標簽為div的元素*/

1.6屬性選擇器

[disabled]{}/*選擇帶有屬性disabled的所有元素*/
[type=button]{}/*選擇type屬性為button的所有元素*/
[class~=sports]{}/*選擇class屬性包含sports所有元素*/
[lang|=en]{  }/*選擇以lang屬性以"en"開頭以及以"-"分隔的所有元素*/
a[href^="#"]{ }/*選擇href屬性以"#"開頭的a元素*/
[href$="pdf"]{  }/*選擇href屬性以"pdf"結尾的元素*/
[href*="lady.163.com"]{}/*選擇href屬性中包含"lady.163.com"的元素*/

2.偽類選擇器

2.1鏈接偽類

/*前兩個只可用于描元素(鏈接)*/
a:link {color:#FF0000;}     /* 未被訪問的鏈接 */
a:visited {color:#00FF00;}  /* 已被訪問的鏈接 */
/*后兩個可以用于其它元素*/
a:hover {color:#FF00FF;}    /* 鼠標指針移動到鏈接上 */
a:active {color:#0000FF;}   /* 正在被點擊的鏈接 */

鏈接在進行設置時: a:hover 必須位于 a:link 和 a:visited 之后, a:active 必須位于 a:hover 之后。

2.2動態偽類

input:focus{}/*設置input元素獲得焦點后的樣式*/
input:enabled{}/*元素可用的狀態*/
input:disabled{}/*元素不可用的狀態,屬性選擇器[disabled]的簡寫*/
input:checked{}/*單選框或者復選框選擇的樣式*/

2.3樹形圖上的偽類html結構如下:

<ul>
    <li>1</li>
    <li>2</li>
    <li><a href="#">3</a></li>
    <li>4</li>
    <p>5</p>
</ul>

選擇符:

ul:first-child{}/*選擇第一個ul下第一個標簽(css2定義,支持ie7)在處理margin時很有用*/

/*以下全是CSS3新增的偽類*/
ul:last-child{}/*選擇最后一個li標簽*/
ul:nth-child(n){}/*選擇()內的表達式如:[2n+1],或者數字所代表的li標簽*/
ul:nth-last-child(n)/*同上,反向選擇*/
ul:only-child{}/*選擇ul只有一個子元素的項,這里會選中第三個li下的a標簽*/
ul:first-of-type{}/*選擇第一個該類型的標簽,會選擇第一個li和p*/
ul:last-of-type{}/*選擇最后一個該類型的標簽,會選擇第四個li和p*/
ul:nth-last-of-type(2n){  }/*倒數的選擇(.)內的表達式[2n],或數字所代表的該類型標簽。選擇第一個和第三個li標簽*/
ul:only-of-type{}/*選擇ul下中只有一個該類型的項,會選中a標簽和p標簽*/
:root{}/*選擇文檔的根元素*/
ul:not(li){}/*選擇不含有li標簽的元素,這里會選中a標簽和p元素*/
ul:empty{}/*匹配ul下沒有任何子元素(包括text節點)的元素,這里匹配不到,把p標簽中的5刪除,可匹配成功*/
E:target{}/*匹配相關URL(錨點)指向的元素。*/

3.偽元素選擇器

::first-letter{}/*選擇第一個字母*/
::first-line{}/*選擇第一行*/
::before{content:"before";}/*在某個元素之前插入一些內容*/
::after{content:"after";}/*在某個元素后插入一些內容*/
::selection{}/*設置于被用戶選中時的樣式*/
::placeholder{}/*設置對象文字占位符的樣式*/

4.組合選擇器

4.1后代選擇器

.main h2{  }/*選擇class名為mian元素內的所有h2標簽*/

4.2子選擇器

.main>h2{  }/*選擇class名為mian元素內的直接關聯與父元素的h2標簽*/

4.3相連選擇器

h2~p{}/*只要P標簽前有h2標簽便選擇*/

4.4兄弟選擇器

h2~p{}/*選擇h2標簽后出現的所有p標簽*/

4.4選擇器分組

h1,h2,h3{backgound-color:#ddd;}/*同時設置h1,h2,h3標簽,使用","分隔*/

5.繼承

body{font-family:"Microsoft Yahei";}/*設置頁面中所有的字體為微軟雅黑*/
  • 繼承屬性
    • color
    • font
    • text-align
    • list-style
  • 非繼承屬性
    • background
    • border
    • position

6.CSS優先級

  • 計算方法
    • a = 行內樣式
    • b = ID選擇器的數量
    • c = 類/偽類和屬性選擇器的數量
    • d = 標簽選擇器和偽元素選擇器數量

value = a 1000 + b 100 + c*10 +d

!important 強行提升優先級

來自: http://guowenfh.github.io/2016/01/08/css-selector/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!