最近在研究jquery的選擇器,大家知道jquery的選擇器和css的選擇器非常相似,所以整理一下css選擇器;
css1-css3提供非常豐富的選擇器,但是由于某些選擇器被各個瀏覽器支持的情況不一樣,所以很多選擇器在實際css開發中很少用到。
選擇器 | 含義 | 示例 |
* | 通用元素選擇器,匹配任何元素 | * { margin:0; padding:0; } |
e | 標簽選擇器,匹配所有使用e標簽的元素 | p { font-size:2em; } |
.info和e.info | class選擇器,匹配所有class屬性中包含info的元素 | .info { background:#ff0; } p.info { background:#ff0; } |
#info和e#info | id選擇器,匹配所有id屬性等于footer的元素 | #info { background:#ff0; } p#info { background:#ff0; } |
| 選擇器 | 含義 | 示例 |
e,f | 多元素選擇器,同時匹配所有e元素或f元素,e和f之間用逗號分隔 | div,p { color:#f00; } |
e f | 后代元素選擇器,匹配所有屬于e元素后代的f元素,e和f之間用空格分隔 | #nav li { display:inline; } li a { font-weight:bold; } |
e > f | 子元素選擇器,匹配所有e元素的子元素f | div > strong { color:#f00; } |
e + f | 毗鄰元素選擇器,匹配所有緊隨e元素之后的同級元素f | p + p { color:#f00; } |
| 選擇器 | 含義 | 示例 |
e[att] | 匹配所有具有att屬性的e元素,不考慮它的值。(注意:e在此處可以省略,比如“[cheacked]”。以下同。) | p[title] { color:#f00; } |
e[att=val] | 匹配所有att屬性等于“val”的e元素 | div[class=”error”] { color:#f00; } |
e[att~=val] | 匹配所有att屬性具有多個空格分隔的值、其中一個值等于“val”的e元素 | td[class~=”name”] { color:#f00; } |
e[att|=val] | 匹配所有att屬性具有多個連字號分隔(hyphen-separated)的值、其中一個值以“val”開頭的e元素,主要用于lang屬性,比如“en”、“en-us”、“en-gb”等等 | p[lang|=en] { color:#f00; } |
注:css 2.1 屬性選擇器還有一個特點就是使用多個選擇器,同事滿足這多個選擇器:blockquote[class=quote][cite] { color:#f00; }
| 選擇器 | 含義 | 示例 |
e:first-child | 匹配父元素的第一個子元素 | p:first-child { font-style:italic; } input[type=text]:focus { color:#000; background:#ffe; } input[type=text]:focus:hover { background:#fff; } q:lang(sv) { quotes: “/201d” “/201d” “/2019′ “/2019′; } |
e:link | 匹配所有未被點擊的鏈接 | |
e:visited | 匹配所有已被點擊的鏈接 | |
e:active | 匹配鼠標已經其上按下、還沒有釋放的e元素 | |
e:hover | 匹配鼠標懸停其上的e元素 | |
e:focus | 匹配獲得當前焦點的e元素 | |
e:lang(c) | 匹配lang屬性等于c的e元素 |
| 選擇器 | 含義 | 示例 |
e:first-line | 匹配e元素的第一行 | p:first-line { font-weight:bold; color;#600; } .preamble:first-letter { font-size:1.5em; font-weight:bold; } .cbb:before { content:”"; display:block; height:17px; width:18px; background:url(top.png) no-repeat 0 0; margin:0 0 0 -18px; } a:link:after { content: ” (” attr(href) “) “; } |
e:first-letter | 匹配e元素的第一個字母 | |
e:before | 在e元素之前插入生成的內容 | |
e:after | 在e元素之后插入生成的內容 |
選擇器 | 含義 | 示例 |
e ~ f | 匹配任何在e元素之后的同級f元素 | p ~ ul { background:#ff0; } |
| 選擇器 | 含義 | 示例 |
e[att^=”val”] | 屬性att的值以”val”開頭的元素 | div[id^="nav"] { background:#ff0; } |
e[att$=”val”] | 屬性att的值以”val”結尾的元素 | |
e[att*=”val”] | 屬性att的值包含”val”字符串的元素 |
| 選擇器 | 含義 | 示例 |
e:enabled | 匹配表單中激活的元素 | input[type="text"]:disabled { background:#ddd;} |
e:disabled | 匹配表單中禁用的元素 | |
e:checked | 匹配表單中被選中的radio(單選框)或checkbox(復選框)元素 | |
e::selection | 匹配用戶當前選中的元素 |
| 選擇器 | 含義 | 示例 |
e:root | 匹配文檔的根元素,對于html文檔,就是html元素 | p:nth-child(3) { color:#f00; } p:nth-child(odd) { color:#f00; } p:nth-child(even) { color:#f00; } p:nth-child(3n+0) { color:#f00; } p:nth-child(3n) { color:#f00; } tr:nth-child(2n+11) { background:#ff0; } tr:nth-last-child(2) { background:#ff0; } p:last-child { background:#ff0; } p:only-child { background:#ff0; } p:empty { background:#ff0; } |
e:nth-child(n) | 匹配其父元素的第n個子元素,第一個編號為1 | |
e:nth-last-child(n) | 匹配其父元素的倒數第n個子元素,第一個編號為1 | |
e:nth-of-type(n) | 與:nth-child()作用類似,但是僅匹配使用同種標簽的元素 | |
e:nth-last-of-type(n) | 與:nth-last-child() 作用類似,但是僅匹配使用同種標簽的元素 | |
e:last-child | 匹配父元素的最后一個子元素,等同于:nth-last-child(1) | |
e:first-of-type | 匹配父元素下使用同種標簽的第一個子元素,等同于:nth-of-type(1) | |
e:last-of-type | 匹配父元素下使用同種標簽的最后一個子元素,等同于:nth-last-of-type(1) | |
e:only-child | 匹配父元素下僅有的一個子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1) | |
e:only-of-type | 匹配父元素下使用同種標簽的唯一一個子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1) | |
e:empty | 匹配一個不包含任何子元素的元素,注意,文本節點也被看作子元素 |
| 選擇器 | 含義 | 示例 |
e:not(s) | 匹配不符合當前選擇器的任何元素 | :not(p) { border:1px solid #ccc; } |
| 選擇器 | 含義 |
|
e:target | 匹配文檔中特定”id”點擊后的效果 |
新聞熱點
疑難解答