溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CSS中偽類(lèi)和偽元素是什么

發(fā)布時(shí)間:2020-12-03 13:47:55 來(lái)源:億速云 閱讀:152 作者:小新 欄目:web開(kāi)發(fā)

小編給大家分享一下CSS中偽類(lèi)和偽元素是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、偽類(lèi)

偽類(lèi)包含兩種:狀態(tài)偽類(lèi)(UI 偽類(lèi))和結(jié)構(gòu)性偽類(lèi)。

(1)狀態(tài)偽類(lèi)是基于元素當(dāng)前狀態(tài)進(jìn)行選擇的。

在與用戶的交互過(guò)程中元素的狀態(tài)是動(dòng)態(tài)變化的,因此該元素會(huì)根據(jù)其狀態(tài)呈現(xiàn)不同的樣式。當(dāng)元素處于某狀態(tài)時(shí)會(huì)呈現(xiàn)該樣式,而進(jìn)入另一狀態(tài)后,該樣式也會(huì)失去。

常見(jiàn)的狀態(tài)偽類(lèi)主要包括:

:link 應(yīng)用于未被訪問(wèn)過(guò)的鏈接;  
:hover 應(yīng)用于鼠標(biāo)懸停到的元素;  
:active 應(yīng)用于被激活的元素;  
:visited 應(yīng)用于被訪問(wèn)過(guò)的鏈接,與:link互斥。  
:focus 應(yīng)用于擁有鍵盤(pán)輸入焦點(diǎn)的元素。
:target 應(yīng)用于鏈接點(diǎn)擊后指向元素

前 4 個(gè)偽類(lèi)的特指度相同,如果不按照這里列出的順序使用它們,瀏覽器可能不會(huì)顯示預(yù)期結(jié)果。為了好記,可以這么想:“LoVe? HA!”大寫(xiě)字母就是每個(gè)偽類(lèi)的頭一個(gè)字母。

input:focus {border:1px solid blue;}

會(huì)在光標(biāo)位于 input 字段中時(shí),為該字段添加一個(gè)藍(lán)色邊框。這樣可以讓用戶明確
地知道輸入的字符會(huì)出現(xiàn)在哪里。

<a href="#more_info">More Information</a>
<h3 id="more_info">This is the information you are looking for.</h3> 
#more_info:target {background:#eee;}

會(huì)在用戶單擊鏈接轉(zhuǎn)向 ID 為 more_info的元素時(shí),為該元素添加淺灰色背景。

(2)結(jié)構(gòu)性偽類(lèi)是css3新增選擇器

利用dom樹(shù)進(jìn)行元素過(guò)濾,通過(guò)文檔結(jié)構(gòu)的互相關(guān)系來(lái)匹配元素,能夠減少class和id屬性的定義,使文檔結(jié)構(gòu)更簡(jiǎn)潔。

常見(jiàn)的包括:

:first-child 選擇某個(gè)元素的第一個(gè)子元素;  
:last-child 選擇某個(gè)元素的最后一個(gè)子元素;  
:nth-child() 選擇某個(gè)元素的一個(gè)或多個(gè)特定的子元素;  
:nth-last-child() 選擇某個(gè)元素的一個(gè)或多個(gè)特定的子元素,從這個(gè)元素的最后一個(gè)子元素開(kāi)始算;  
:nth-of-type() 選擇指定的元素;  
:nth-last-of-type() 選擇指定的元素,從元素的最后一個(gè)開(kāi)始計(jì)算;  
:first-of-type 選擇一個(gè)上級(jí)元素下的第一個(gè)同類(lèi)子元素;  
:last-of-type 選擇一個(gè)上級(jí)元素的最后一個(gè)同類(lèi)子元素;  
:only-child 選擇的元素是它的父元素的唯一一個(gè)子元素;  
:only-of-type 選擇一個(gè)元素是它的上級(jí)元素的唯一一個(gè)相同類(lèi)型的子元素;  
:empty 選擇的元素里面沒(méi)有任何內(nèi)容。

二、偽元素

偽元素是對(duì)元素中的特定內(nèi)容進(jìn)行操作,而不是描述狀態(tài)。它的操作層次比偽類(lèi)更深一層,因此動(dòng)態(tài)性比偽類(lèi)低很多。實(shí)際上,偽元素就是選取某些元素前面或后面這種普通選擇器無(wú)法完成的工作??刂频膬?nèi)容和元素是相同的,但它本身是基于元素的抽象,并不存在于文檔結(jié)構(gòu)中!

常見(jiàn)的偽元素選擇器包括:

:first-letter 選擇元素文本的第一個(gè)字(母)。  
:first-line 選擇元素文本的第一行。  
:before 在元素內(nèi)容的最前面添加新內(nèi)容。  
:after 在元素內(nèi)容的最后面添加新內(nèi)容。

三、注意

單冒號(hào)(:)用于 CSS3 偽類(lèi),雙冒號(hào)(::)用于 CSS3 偽元素,為了兼容某些瀏覽器,一般都采用單冒號(hào)

兼容性的問(wèn)題,交給postcss去做。本文并未涉及兼容性的寫(xiě)法,包括前綴問(wèn)題,可以交給autoprefixer去做。(這句話啥意思沒(méi)懂,以后看看說(shuō)的啥)

偽類(lèi)(結(jié)構(gòu)偽類(lèi))的效果可以通過(guò)添加一個(gè)實(shí)際的類(lèi)來(lái)達(dá)到,而偽元素的效果則需要通過(guò)添加一個(gè)實(shí)際的元素才能達(dá)到,這也是為什么他們一個(gè)稱為偽類(lèi),一個(gè)稱為偽元素的原因。

四、偽元素的使用

(1) 清除浮動(dòng)

.clear:after {
content: '';
display: block;
clear: both;
}

(2) 畫(huà)分割線

<style>
* {
  padding: 0;
  margin: 0;
}
.spliter::before, .spliter::after {
  content: '';
  display: inline-block;
  border-top: 1px solid black;
  width: 200px;
  margin: 5px;
}
  </style></head><body>
  <p class="spliter">分割線</p></body>

以上是“CSS中偽類(lèi)和偽元素是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI