以css偽類為基礎,引發的選擇器討論 新手向

2021-09-26 16:22:05 字數 2154 閱讀 6429

作為第一篇技術乾貨,來寫哪個方面的內容,我著實考慮了很久。

經過了整整30秒的深思熟慮,我決定就我第一次發現新大陸一樣的內容,來進行一次討論。

簡單的使用:

1

<

div

id='ancestor'

>

2<

div

id="father"

>

3<

div

id="son"

>

4div

>

5div

>

6div

>78

<

style

>

9#ancestor

14#father

19#son

24#ancestor:hover

27style

>

view code

這段**,十分簡單應該大家都能看的懂,效果也可以預知,下面我們就來做一點。

**變異:

1

<

div

id='ancestor'

>

2<

div

id="father"

>

3<

div

id="son"

>

4div

>

5div

>

6div

>78

<

style

>

9#ancestor

14#father

19#son

24#ancestor :hover

27style

>

view code 2

或許乍一看,感覺這段**和之前的那一段一模一樣,但是其實有乙個很大的區別。

相信拷貝**去嘗試過的小夥伴們,已經開始疑惑了。那就讓我開始來嗶嗶一波吧。

其實仔細關注了這兩段**之後,可以發現區別實際是在 #ancestor:hover 這個選擇器上。第二段**只是多加了乙個空格。

很多同學肯定已經靈光一閃,彷彿已經明白了什麼。不過,還是我來提壺(醍醐)給大家灌個頂吧!

發生了什麼:

大家都知道選擇器中,空格就是後代選擇器。#ancestor :hover 所命中的,其實就是 #ancestor 所有後代元素的 :hover 屬性。所以在 #ancestor 自身上。沒有被新增到這個偽類,而 #father 、#son,被同時命中。就出現了大家所看到的效果。如果,想印證我的說法,可以使用 #ancestor>:hover 再做一次嘗試. 或者再次新增更多的後代元素.看看他們是否一樣有這個特殊效果。

至於我們最通常使用的 #ancestor:hover 這一種使用的方式,實際上就是兩個選擇器組成的交集選擇器,需要同時命中這兩個條件才被適用。

故而,我這一堆嗶嗶,也就是為了表明偽類、偽元素選擇器,其實和我們使用的id選擇器、類選擇器等等常見的選擇器一樣,可以使用各種關係符,來組成各種奇怪而又好用的選擇器。

這一堆嗶嗶,換來的實用性:

很多人這個時候已經在吐槽了。偽類,只有在一些特殊的場景之下才會使用到,並不會很常用。

我想說的是,偽類,並不僅僅是 :link:,:vistited,:hover,:active 等特殊狀態的。

還有一些,比如:first-child,:last-child,:nth-child 這些指向特定元素的。

在我們使用這些偽類時,例如 li:first-child

,會命中的是 li 標籤,同時必須是他自身父級的第乙個元素。所以,很多人都會加上乙個類名來實現給他的效果。

但是,如果我們這樣寫呢。 ul > :first-child

是不是就會顯的更有語義且優雅。

亦或者,ul > ::before

給所有的子集中增加乙個小箭頭

後話,嗶嗶了這麼久。其實實用性確實不是很高。我做這一篇隨筆主要意義是,希望新手能正常理解,偽類、偽元素,到底是乙個什麼樣的東西。其實它們並不特殊,和普通的選擇器是一模一樣的。不需要用特殊的眼光去看待他們。也不需要覺得它們有什麼特別的用法。將他們看成普通的選擇器,只不過他們命中的元素是一種特殊狀態。記住這一點就好。

至:所有對偽類,偽元素持懵逼狀態的各位。

CSS偽類選擇器

原來學習過css偽類選擇器,前幾天寫css發現自己並不熟悉了。這兩天把它撿起來複習一下 css偽類選擇器是用於向某些元素新增特定的效果。錨偽類 包括四種狀態,活動狀態,未被訪問狀態,已被訪問狀態,懸停效果。example a link a visited a hover a active fist ...

css偽類選擇器

link 設定超連結的預設樣式 例如 a a link 不推薦使用 有相容性 one link 不推薦使用 有相容性 visited 設定標籤被訪問過後的樣式 例如 a visited 注意 該偽類選擇器一般不會大量使用,因為瀏覽器存在快取問題。只能設定與顏色相關的屬性 hover 設定滑鼠懸停到標...

css偽類選擇器

名稱 說明ele not 匹配除了誰。裡面填條件,也就是選擇器。ele root 匹配根目錄的意思,在html裡是選 html標籤 ele target url錨點 指向文件內某個具體的元素。那麼該元素就會觸發 target ele first child 匹配父元素下的第乙個子元素必須有父元素,最...