僞類選擇元素基於的是當前元素處於的狀態,或者說元素當前所具備的特性,而不是元素的id、class、屬性等靜態的標誌。因爲狀態是動態變化的,因此一個元素達到一個特定狀態時,它可能獲得一個僞類的樣式;當狀態改變時,它又會失去這個樣式。由此能夠看出,它的功能和class有些相似,但它是基於文檔以外的抽象,因此叫僞類。php
僞類選擇器:CSS中已經定義好的選擇器,不能隨便取名css
:linkhtml
僞類將應用於未被訪問過的連接,與:visited互斥。css3
:hoverweb
僞類將應用於有鼠標指針懸停於其上的元素。ui
:activeurl
僞類將應用於被激活的元素,如被點擊的連接、被按下的按鈕等。spa
:visited設計
僞類將應用於已經被訪問過的連接,與:link互斥。指針
:focus
僞類將應用於擁有鍵盤輸入焦點的元素。
:first-child
僞類將應用於元素在頁面中第一次出現的時候。
:lang
僞類將應用於元素帶有指定lang的狀況。
:root()選擇器
匹配元素E所在文檔的根元素。在HTML文檔中,根元素始終是<html>。「:root」選擇器等同於<html>元素
:not()選擇器
稱爲否認選擇器,和jQuery中的:not選擇器如出一轍,能夠選擇除某個元素以外的全部元素。
:empty()選擇器
表示的就是空。用來選擇沒有任何內容的元素,這裏沒有內容指的是一點內容都沒有,哪怕是一個空格。
:target()選擇器
對頁面某個target元素(該元素的id被當作頁面中的超連接來使用)指定樣式,該樣式只在用戶點擊了頁面中的超連接,而且跳轉到target元素後起做用
:nth-child()
選擇某個元素的一個或多個特定的子元素。
:nth-last-child()
從某父元素的最後一個子元素開始計算,來選擇特定的元素。
與僞類針對特殊狀態的元素不一樣的是,僞元素是對元素中的特定內容進行操做,它所操做的層次比僞類更深了一層,也所以它的動態性比僞類要低得多。實際上,設計僞元素的目的就是去選取諸如元素內容第一個字(母)、第一行,選取某些內容前面或後面這種普通的選擇器沒法完成的工做。它控制的內容實際上和元素是相同的,可是它自己只是基於元素的抽象,並不存在於文檔中,因此叫僞元素。
僞元素選擇器:並非針對真正的元素使用的選擇器,而是針對CSS中已經定義好的僞元素使用的選擇器。
CSS中的僞元素你們之前看過::first-line,:first-letter,:before,:after;
那麼在CSS3中,他對僞元素進行了必定的調整,在之前的基礎上增長了一個「:」也就是如今變成了「::first-letter,::first-line,::before,::after」另外他還增長了一個「::selection」,兩個「::」和一個「:」css3中主要用來區分僞類和僞元素,到目前來講,這兩種方式都是被接受的,也就是說無論使用哪一種寫法所起的做用都是同樣的,只是一個書寫格式不一樣而以。
:first-letter
僞元素的樣式將應用於元素文本的第一個字(母)。
:first-line
僞元素的樣式將應用於元素文本的第一行。
:before
在元素內容的最前面添加新內容。
:after
在元素內容的最後面添加新內容。
::first-line
選擇元素的第一行,好比說改變每一個段落的第一行文本的樣式,咱們就能夠使用這個
::before和::after
這兩個主要用來給元素的前面或後面插入內容,這兩個經常使用"content"配合使用,見過最多的就是清除浮動
::selection
用來改變瀏覽網頁選中文的默認效果