偽,假的意思电谣。把偽字拿掉秽梅,可以看出它們的本質(zhì)區(qū)別抹蚀,一個是類(class),一個是元素(tag)企垦,本質(zhì)區(qū)別是有沒有創(chuàng)建新的元素环壤,改變html結(jié)構(gòu)(抽象層面上)。
常見的偽類有::link , :visited , :hover , :actived , :focus(向擁有鍵盤輸入焦點的元素添加樣式) :first-child(向元素的第一個子元素添加樣式) 钞诡, :lang(向帶有l(wèi)ang屬性特定值的元素添加樣式)
常見的偽元素有:::before , ::after , ::first-letter(向文本的第一個字母添加樣式) , ::first-line(向文本的首行添加樣式)
注:::first-letter和::first-line只能作用于塊級元素郑现。
css3中偽類的定義:?
偽類存在的意義是為了通過選擇器找到那些不存在與DOM樹中的信息以及不能被常規(guī)CSS選擇器獲取到的信息。
偽類由一個冒號:開頭荧降,冒號后面是偽類的名稱和包含在圓括號中的可選參數(shù)懂酱。
任何常規(guī)選擇器可以再任何位置使用偽類。偽類語法不區(qū)別大小寫誊抛。一些偽類的作用會互斥列牺,另外一些偽類可以同時被同一個元素使用。并且拗窃,為了滿足用戶在操作DOM時產(chǎn)生的DOM結(jié)構(gòu)改變瞎领,偽類也可以是動態(tài)的。
偽元素定義:
偽元素在DOM樹中創(chuàng)建了一些抽象元素随夸,這些抽象元素是不存在于文檔語言里的(可以理解為html源碼)九默。比如:documen接口不提供訪問元素內(nèi)容的第一個字或者第一行的機制,而偽元素可以使開發(fā)者可以提取到這些信息宾毒。并且驼修,一些偽元素可以使開發(fā)者獲取到不存在于源文檔中的內(nèi)容(比如常見的::before,::after)。
偽元素的由兩個冒號::開頭诈铛,然后是偽元素的名稱乙各。
使用兩個冒號::是為了區(qū)別偽類和偽元素(CSS2中并沒有區(qū)別)。當(dāng)然幢竹,考慮到兼容性耳峦,CSS2中已存的偽元素仍然可以使用一個冒號:的語法,但是CSS3中新增的偽元素必須使用兩個冒號::焕毫。
一個選擇器只能使用一個偽元素蹲坷,并且偽元素必須處于選擇器語句的最后。
(為保證兼容邑飒,偽元素在書寫的時候還是采用一個冒號開頭)