css偽類和偽元素及選擇器優(yōu)先級(jí)

偽類是一種虛構(gòu)的狀態(tài)或者是一個(gè)具有特殊屬性的元素可以使用css進(jìn)行樣式修飾。常見的幾種偽類有:

:link ,:visited,:hover,:active,:first-child,:nth-child,:nth-of-type

偽類前面總是加一個(gè)冒號(hào)(:)。
:link偽元素代表鏈接的正常狀態(tài),用于選擇未訪問的鏈接。:visited偽類用于已經(jīng)被訪問過的鏈接。:hover偽類用于當(dāng)用戶的鼠標(biāo)懸停在鏈接之上時(shí)對(duì)元素的樣式修飾。:active表示鼠標(biāo)點(diǎn)擊時(shí)激活。在這里需要聲明一點(diǎn),:link偽元素需要在所有此類別的偽元素之前聲明。其順序?yàn)?code>:link,:visited,:hover,:active。

p:nth-child(n)滿足兩條:
1、是p元素
2、是父元素的第n個(gè)孩子
p:nth-of-type(n)則表示:
父元素的第n個(gè)段落(p)
偽元素,更像是虛擬的元素可以和HTML元素一樣對(duì)待。區(qū)別在于它們并不存在于文檔樹或者DOM之中。這意味著我們并沒有真正的指定偽元素,但是可以使用CSS進(jìn)行創(chuàng)建。

常見的幾種偽元素

:after,:before,:first-letter

在偽元素中,css3引入雙冒號(hào)(::),但是為了更好地兼容瀏覽器,也可以使用單冒號(hào)(:)。但是有一些為元素必須使用雙冒號(hào),::backdrop.

偽元素通過CSS生成內(nèi)容是通過content屬性結(jié)合:before或者:after偽元素來實(shí)現(xiàn)。

::BEFORE/:BEFORE

:before偽元素和它的兄弟:after,用來給另外一個(gè)HTML元素添加內(nèi)容(文本或者圖形)。同樣的,添加的內(nèi)容并不在DOM中真實(shí)存在但是可操縱。另外,內(nèi)容的屬性需要在CSS中聲明。

需要記住,使用這個(gè)偽元素添加的文本不可以被選擇。

HTML:

<h1>Ricardo</h1>

CSS:

h1:before {
    content: "Hello "; /* Note the space after the word Hello. */
}

渲染出來類似這樣:

Hello Ricardo!

注意:“Hello ”中的空格也同時(shí)被添加進(jìn)去了。

::AFTER/:AFTER

:after偽元素用來向另一個(gè)HTML元素中添加內(nèi)容(同樣的也是文本或者圖形)。被添加的內(nèi)容不存在于DOM中,但是可操縱。為了更好地工作,內(nèi)容屬性需要在CSS中聲明。

注意,使用這個(gè)偽元素添加的內(nèi)容不可以被選擇。

HTML:

<h1>Ricardo</h1>

CSS:

h1:after {
    content: ", Web Designer!";
}

渲染結(jié)果如下:

Ricardo, Web Designer!

::BACKDROP (EXPERIMENTAL)

::backdrop偽元素是一個(gè)盒子,在全屏元素之后生成,但是在其它所有內(nèi)容之上。它經(jīng)常和:fullscreen偽類結(jié)合使用改變最大化屏幕的背景顏色 - 如果你不想使用默認(rèn)的黑色。

注意: ::backdrop偽元素需要使用雙冒號(hào),使用單冒號(hào)不起作用。

讓我們?cè)俅卫^續(xù):fullscreen偽類的示例。

HTML:

<h1 id="element">This heading will have a solid background color in full-screen mode.</h1>
<button onclick="var el = document.getElementById('element'); el.webkitRequestFullscreen();">Trigger full scre

::FIRST-LETTER/:FIRST-LETTER

:first-letter 偽元素用來選擇文本的第一個(gè)字母。

如果第一行文本包含一個(gè)元素,如圖片,播放器或者表格,這時(shí)第一個(gè)字母不會(huì)被影響仍舊可以被選擇。

這在段落中是一個(gè)很好的應(yīng)用,如:在不需要使用圖片或者外部設(shè)置時(shí),可以提高段落的吸引力。

提示:使用:before偽元素生成的內(nèi)容文本,即使不存在于DOM中,其文本的第一個(gè)字母可以被指定。

CSS:

h1:first-letter  {
    font-size: 5em;
}

::FIRST-LINE/:FIRST-LINE

:first-line偽元素指定一個(gè)元素的第一行。它旨在塊級(jí)元素中起作用,在行內(nèi)元素不起作用。

當(dāng)在段落中使用時(shí),如:只是給段落的第一行文本改變樣式,即使文本被包裹。

CSS:

p:first-line {
    background: orange;
}

選擇器優(yōu)先級(jí)

首先來看一下css選擇符(css選擇器)有哪些?

1.標(biāo)簽選擇器(如:body,div,p,ul,li)

2.類選擇器(如:class="head",class="head_logo")

3.ID選擇器(如:id="name",id="name_txt")

4.全局選擇器(如:*號(hào))

5.組合選擇器(如:.head .head_logo,注意兩選擇器用空格鍵分開)

6.后代選擇器 (如:#head .nav ul li 從父集到子孫集的選擇器)

7.群組選擇器 div,span,img {color:Red} 即具有相同樣式的標(biāo)簽分組顯示

8.繼承選擇器(如:div p,注意兩選擇器用空格鍵分開)

9.偽類選擇器(如:就是鏈接樣式,a元素的偽類,4種不同的狀態(tài):link、visited、active、hover。)

10.字符串匹配的屬性選擇符(^ $ *三種,分別對(duì)應(yīng)開始、結(jié)尾、包含)

11.子選擇器 (如:div>p ,帶大于號(hào)>)

12.CSS 相鄰兄弟選擇器器 (如:h1+p,帶加號(hào)+)

優(yōu)先級(jí)

不同級(jí)別
在屬性后面使用 !important 會(huì)覆蓋頁面內(nèi)任何位置定義的元素樣式。
作為style屬性寫在元素內(nèi)的樣式
1、id選擇器
2、類選擇器|偽類選擇器(nth-child等)|屬性選擇器([title])
3、 標(biāo)簽選擇器
4、 通配符選擇器
5、瀏覽器自定義或繼承

//css
:first-child{
    color:green;
}.aa{
color: red;
}[title]{
    color:blue;
}
//dom
 <div class="aa" title='s'>f</div>

以上css會(huì)相互覆蓋
總結(jié)排序:!important > 行內(nèi)樣式>ID選擇器 > 類選擇器=偽類=屬性 > 標(biāo)簽 > 通配符 > 繼承 > 瀏覽器默認(rèn)屬性
參考鏈接https://www.w3cplus.com/css/an-ultimate-guide-to-css-pseudo-classes-and-pseudo-elements.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 偽類與偽元素 css引入偽類和偽元素概念是為了格式化文檔樹以外的信息。也就是說,偽類和偽元素是用來修飾不在文檔樹中...
    落花的季節(jié)閱讀 371評(píng)論 0 1
  • 本文轉(zhuǎn)載自:眾成翻譯譯者:為之漫筆鏈接:http://www.zcfy.cc/article/239原文:http...
    極樂君閱讀 7,545評(píng)論 1 62
  • 偽,假的意思。把偽字拿掉,可以看出它們的本質(zhì)區(qū)別,一個(gè)是類(class),一個(gè)是元素(tag),本質(zhì)區(qū)別是有沒有創(chuàng)...
    筱雪兒00閱讀 369評(píng)論 0 0
  • 1. 偽類 & 偽元素 偽類和偽元素用來修飾不在文檔樹中的部分 偽類:用于當(dāng)已有元素處于的某個(gè)狀態(tài)時(shí),為其添加對(duì)應(yīng)...
    楊慧莉閱讀 650評(píng)論 0 5
  • CSS偽類: link:未被訪問的鏈接 visited:被訪問過后的樣式 hover:鼠標(biāo)放上去的樣式 activ...
    尤樊容閱讀 351評(píng)論 0 0

友情鏈接更多精彩內(nèi)容