## :root 偽類
:root 偽類是匹配文檔的根元素,很多時(shí)候,根元素也就是 html 元素,用 root 偽類來匹配根元素,目的就是解決根元素不是 html 的場景,比如根元素是 svg 的時(shí)候。
root 偽類的使用場景,我們引入某些 UI 庫,很多時(shí)候,需要重置一些樣式,就可以使用 root 偽類,這樣就不擔(dān)心重置的樣式不生效了。因?yàn)閭晤?root 的優(yōu)先級(jí)更高。比如:
```css
:root {
overflow-y: auto;
scrollbar-gutter: stable;
}
```
另一種情況就是在 root 偽類內(nèi)定義變量,比如:
```css
:root {
/* 顏色變量 */
--blue: #248600;
--red: #f461cc;
/* 尺寸變量 */
--layerWidth: 1100px;
}
```
因?yàn)樵趥晤?root 中定義變量,代碼的可讀性更好,所以有很多團(tuán)隊(duì)都推薦偽類 root 負(fù)責(zé)定義變量,html 負(fù)責(zé)樣式。至于哪種方式好點(diǎn),就得看看團(tuán)隊(duì)的編碼規(guī)范了。
## :empty 偽類
:empty 偽類用來匹配空標(biāo)簽。
但是這里的空標(biāo)簽,標(biāo)簽內(nèi)不能有注釋、換行,否則不生效。
## :first-child偽類和:last-child偽類
first-child 偽類,匹配的是第一個(gè)元素,last-child 匹配最后一個(gè)元素。
## :only-child偽類
:only-child偽類,顧名思義,就是匹配沒有兄弟元素的元素。
## :nth-child()偽類和:nth-last-child()偽類
匹配指定序號(hào)的元素。它們有兩種參數(shù)類型:
第一種是:關(guān)鍵字的形式
1. odd:匹配第奇數(shù)個(gè)元素,如第1個(gè)元素、第3個(gè)元素、第5個(gè)元素
2. even:匹配第偶數(shù)個(gè)元素;
第二種是:函數(shù)符號(hào)的形式
1. An+B:其中A和B都是固定的數(shù)值
## :first-of-type偽類和:last-of-type偽類
:first-of-type表示當(dāng)前第一個(gè)標(biāo)簽類型的元素,:last-of-type偽類的語法和匹配規(guī)則與:first-of-type的類似