CSS Pseudo-classes,csspseudo-classes

來源:互聯網
上載者:User

CSS Pseudo-classes,csspseudo-classes

先來一條金科玉律:

偽類的效果可以通過添加一個實際的類來達到;虛擬元素的效果可以通過添加一個實際的元素來達到。

 

第一部分,Pseudo-classes,偽類

 

一、連結系

(這個應該是最熟悉的啦。)

a:link——未訪問的連結

a:visited——已訪問的連結

a:hover——滑鼠懸浮在連結上時的樣式

a:active——滑鼠點選連結時的樣式

上述4種偽類在同時應用到<a>元素時,考慮到樣式的層疊關係,需要按照LoVeHA的順序,否則容易出問題。

 

二、表單系

input:focus——指定焦點元素的樣式;簡單來說,就是滑鼠游標閃動的那個地方,常用於表單的輸入框。

input:disabled——指定帶有disabled屬性的<input>元素的樣式

input:enabled——指定帶有enabled屬性的<input>元素的樣式

input:checked——指定帶有checked屬性的<input>元素的樣式

input:required——指定帶有required屬性的<input>元素的樣式

input:optional——指定不帶有required屬性的<input>元素的樣式

input:valid——指定帶有有效值的<input>元素的樣式

input:invalid——指定帶有無效值的<input>元素的樣式

input:read-only——指定帶有readonly屬性的<input>元素的樣式

input:read-write——指定不帶有readonly屬性的<input>元素的樣式

input:in-range——假如一個輸入框中指定了最小值和最大值(type="number"/type="range"),當輸入的值在指定的範圍內時,就會應用這個樣式

input:out-of-range——xxxxxx,當輸入的值超出了指定的範圍,就會應用這個樣式。

 

三、互動系

:hover——理論上能用於所有元素,比如#header:hover,其意思是指,當使用者滑鼠懸浮在id值為header的元素上時,應用指定的樣式。

:active——理論上能用於所有元素,比如#header:active,其意思是指,當使用者滑鼠點擊id值為header的元素時,應用指定的樣式。

:focus——理論上能用於所有能夠被焦點化的元素,多用於表單元素,比如<input>、<textarea>等。

焦點化,通俗地理解,滑鼠點一下,會出現游標(一閃一閃的)。

 

四、數字系

前方高能,備好紙筆。。。

 

:first-child

比如 p:first-child,第一步,在任何一個元素中,找到第一個子項目;第二步,這個子項目是不是p元素;如果是,就選它(如果不是,就跳過),然後尋找下一個。

 

:last-child

尋找最後一個子項目,步驟同上。

 

:nth-child()

這個偽類可以(必須)指定參數,以p:nth-child()舉例,有以下幾種方式。

提示:參數運算式中n都是從0開始算的。

1.    當參數為一個具體的數字,比如3,p:nth-child(3);第一步,在任何一個元素中,找到它的第3個子項目;第二步,這個子項目是不是p元素。

       當參數為1的時候,即 :nth-child(1),等同於 :first-child。

有圖才有真相:

CSS如下:

1 p:nth-child(3) {2     color:orange;3 }

頁面效果:

第一幅圖:

                       

第二幅圖:

 

 

一切盡在不言中。。。

 

2.    當參數為2n,那就選擇所有的偶數子項目,等同於even;當參數為2n+1或2n-1,那就選擇所有的奇數子項目,等同於odd;這個在做斑馬線表格的時候經常用。

3.    當參數為n的倍數,比如3n,這個好理解。

4.    當參數為n+具體數字,比如n+3,表示從第3個子項目往後找;因為n從0開始,那麼這個運算式的值就是從3開始,3、4、5。。。這樣子。

5.    當參數為-n+具體數字,比如-n+3,表示從第3個子項目往前找;因為n從0開始,那麼這個運算式的值就是從3開始,然後2、1。。。這樣子。

6.    當參數為具體數字*n+1,比如3n+1,表示從1開始,隔3選一。

實踐中可以根據需要自創運算式,自行發揮吧。

記住兩步,第n個找到了之後,還要看元素類型對不對。

 

:nth-last-child

接受的參數與 :nth-child()一致,只不過這個要倒過來數。

 

:nth-of-type()

接受參數,參數類型同上。

比如 p:nth-of-type(3),先找到所有的p元素,然後找第3個p元素,給它應用樣式。

有圖有真相,請看下面:

CSS代碼:

1 h1:nth-of-type(2) {2     color:blue;3 }4 5 p:nth-of-type(3) {6     color:orange;7 }

下面:

 

記住兩步,先找元素類型,再找第n個。

 

:first-of-type——略

:last-of-type——略

 

:only-child

比如 p:only-child,它表示,父元素中只有唯一一個子項目,而且這個子項目還必須是p元素。

 

:only-of-type

比如 p:only-of-type,它表示,父元素中有幾個子項目都沒關係,但是p元素只能有一個。

 

:empty

比如 p:empty,它表示,如果有一個完全空的(連空格都沒有的)p元素,就選它。

兩步,先找完全空的元素,再看是不是p元素。

 

小發現:

如果html是這樣子的,<p> </p>,中間有空格,在頁面上是沒有這個p元素的位置的;

如果html是這樣的,<p>&nbsp;</p>,中間有一個&nbsp; , 在頁面上會顯示一個空白行。

(額。但是不知道這個區別有什麼用。。。)

 

五、其它

 :root——選擇文檔的根項目;在html文檔中,總是<html>元素。

:not()——否定選取器,比如 :not(p),選擇所有非<p>元素。

:target——語言匱乏,暫且不表;一個很神奇的偽類。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.