CSS選擇器常見的有哪幾種?
一、簡單選擇器 Simple Selectors
選擇器 | 含義 |
---|---|
* | 通用元素選擇器,匹配任何元素 |
E | 標(biāo)簽選擇器亭病,匹配所有使用E標(biāo)簽的元素 |
.info | class選擇器逻恐,匹配所有class屬性中包含info的元素 |
#footer | id選擇器,匹配所有id屬性等于footer的元素 |
二堕汞、屬性選擇器 Attribute Selectors
選擇器 | 含義 |
---|---|
[atrr] | 選擇包含 attr 屬性的所有元素勺爱,不論 attr 的值為何 |
[attr=val] | [attr=val] 僅選擇 attr 屬性被賦值為 val 的所有元素 |
三、組合選擇器 Combinators
選擇器 | 含義 |
---|---|
A, B | 選中匹配 A 或/和 B 的元素 |
A B | 選中匹配 B 且為匹配 A 的元素的后代元素(A B之間空格分開) |
A > B | 選中匹配 B 且為匹配 A 的元素的直接子元素 |
A + B | 選中匹配 B 且為匹配 A 的元素的下一相鄰元素 |
A ~ B | 選中匹配 B 且為匹配 A 的元素的下 N 個相鄰元素 |
四讯检、偽類 Pseudo-classes
選擇器 | 含義 |
---|---|
a:link | 匹配所有未被點(diǎn)擊的鏈接 |
a:visited | 匹配所有已被點(diǎn)擊的鏈接 |
a:hover | 匹配鼠標(biāo)懸停其上的a元素 |
a:active | 匹配鼠標(biāo)已經(jīng)其上按下琐鲁、還沒有釋放的a元素 |
li:first-child | 匹配父元素的第一個子元素li |
li:last-child | 匹配父元素的最后一個子元素li |
li:nth-child(n) | 匹配父元素的第n個子元素li(odd奇數(shù),even偶數(shù)) |
五人灼、偽元素 Pseudo-elements
選擇器 | 含義 |
---|---|
E::before | 在E元素內(nèi)創(chuàng)建一個子元素围段,插入生成的內(nèi)容作為偽元素,放在最前面 |
E::after | 在E元素內(nèi)創(chuàng)建一個子元素投放,插入生成的內(nèi)容作為偽元素奈泪,放在最后面 |
E::selection | 應(yīng)用于文檔中被用戶高亮的部分(比如使用鼠標(biāo)選中的部分) |
E::first-letter | 匹配E元素的第一個字母第一行的第一個字母 |
E::first-line | 匹配E元素的第一行 |
六、多重選擇器 Multiple Selectors
在HTML中,我們有時會對同一個標(biāo)簽賦予多個class名稱涝桅,如:
<div class="one two"></div>
而在CSS里面則可能同時選擇多個class拜姿,像是:
.one .two{} /*兩個 class 中有空格*/ .one.two{} /*兩個 class 中沒有空格*/ .one, .two{} /*兩個 class 中出現(xiàn)逗號*/
這三者
one.two{ }
,.one .two{ }
冯遂,或者是.one, .two{ }
有何區(qū)別蕊肥?
- 第一個的 one 和 two 中間包含空格,意思是指蛤肌,我必須要是在 one 裡面的 two壁却,才會被選擇到。
- 第二個的 one 和 two 中間沒有包含空格裸准,表示某個區(qū)塊必須同時具有 one 和 two 的 class 時儒洛,才能被 CSS 所選擇到到。
- 第三個的 one 和 two 中間包含逗號狼速,意思是指 class 中有 one 或 two琅锻,都會被編輯器所選擇到。
簡單來說向胡,沒空格表示必須同時包含才會被選饶张睢;有空格表示后面的 class 被鑲嵌在前面的 class 中才會被選冉┣邸处硬;逗號則表示只要有其中一個 class 就會被選取到 。