css選擇器

一、class 和 id 的使用場(chǎng)景

(1) id :指定標(biāo)簽的唯一標(biāo)識(shí)。
(2)class :指定標(biāo)簽的類(lèi)名,可以重復(fù)使用。

一個(gè)擴(kuò)展,關(guān)于name,id,class

二、CSS選擇器常見(jiàn)的有幾種?

(1)基礎(chǔ)選擇器

選擇器 含義
* 通用元素選擇器,匹配頁(yè)面任何元素
#id id選擇器,匹配特定id的元素
.class 類(lèi)選擇器,匹配class包含特定的元素
element 標(biāo)簽選擇器

(2)組合選擇器

選擇器 含義
E,F 多元素選擇器,用,分割,同時(shí)匹配元素E或元素F
E F 后代元素選擇器,用空格分割,匹配所有屬于E元素后代的F元素(不只是子元素,子元素向下遞歸)
E>F 子元素選擇器,用>分割,匹配E元素的所有直接子元素
E+F 直接相鄰選擇器,匹配E元素之后的相鄰的同級(jí)元素F
E~F 普通相鄰選擇器(弟弟選擇器),匹配E元素之后的同級(jí)元素F(無(wú)論直接相鄰與否)
.class1.class2 選擇器與選擇器連寫(xiě)的時(shí)候中間沒(méi)有分割符“,”,“.”和“#”為本身充當(dāng)分隔符的元素
element#id 連寫(xiě)時(shí)中間沒(méi)有分隔符

(3)屬性選擇器

選擇器 含義
E[attr] 匹配所有具有屬性attr的元素,div[id]就能取到所有id屬性的div
E[attr=value] 匹配屬性attribute值為value的元素,div[id=test],匹配id=test的div
E[attr~=value] 匹配所有屬性attr具有多個(gè)空格分隔、其中一個(gè)值等于value的元素
E[attr^=value] 匹配屬性attr的值以value開(kāi)頭的元素
E[attr$=value] 匹配屬性attr的值一value結(jié)尾的元素
E[attr*=value] 匹配屬性attr的值包含value的元素

(4)偽類(lèi)選擇器

選擇器 含義
E:first-child 匹配作為長(zhǎng)子(第一個(gè)子女)的元素E
E:link 匹配所有未被點(diǎn)擊的鏈接
E:visited 匹配所有未被點(diǎn)擊的鏈接
E:active 匹配鼠標(biāo)已經(jīng)其上按下,還沒(méi)有釋放的E元素
E:hover 匹配鼠標(biāo)懸停其上的E元素
E:focus 匹配獲得當(dāng)前焦點(diǎn)的E元素
E:lang(c) 匹配lang屬性等于c的E元素
E:enabled 匹配表單中可用的元素
E:disabled 匹配表單中禁用的元素
E:checked 匹配表單中被選中的radio或checkbox元素
E:selection 匹配用戶當(dāng)前選中的元素
E:selection 匹配用戶當(dāng)前選中的元素
E:nth-child(n) 匹配其父元素的第n個(gè)子元素,第一個(gè)編號(hào)為1
E:nth-last-child(n) 匹配其父元素的倒數(shù)第n個(gè)子元素,第一個(gè)編號(hào)為1
E:nth-of-type(n) 與:nth-child()作用類(lèi)似,但是僅匹配使用同種標(biāo)簽的元素
E:nth-last-of-type(n) 與:nth-last-child() 作用類(lèi)似,但是僅匹配使用同種標(biāo)簽的元素

(5)偽元素選擇器

選擇器 含義
E::first-line 匹配E元素內(nèi)容的第一行
E::first-letter 匹配E元素內(nèi)容的第一個(gè)字母
E::before 在E元素之前插入生成的內(nèi)容
E::after 在E元素之后插入生成的內(nèi)容

來(lái)源:饑人谷課件

三、選擇器的優(yōu)先級(jí)是怎樣的?對(duì)于復(fù)雜場(chǎng)景如何計(jì)算優(yōu)先級(jí)?

(1)簡(jiǎn)單情況下(從高到低分別是)

  • 在屬性后面使用!important會(huì)覆蓋頁(yè)面內(nèi)任何位置定義的元素樣式。
  • 作為style屬性寫(xiě)在元素標(biāo)簽上的內(nèi)聯(lián)樣式
  • id 選擇器
  • 類(lèi)選擇器、偽類(lèi)選擇器、屬性選擇器
  • 標(biāo)簽選擇器、偽元素選擇器
  • 通配符選擇器
  • 瀏覽器自定義

(2)復(fù)雜情況下


  • 把選擇器按照如圖所示分類(lèi)成a、b、c、d四類(lèi)
  • css對(duì)照這個(gè)標(biāo)準(zhǔn)算出a、b、c、d各自的值
  • 根據(jù)a、b、c、d的順序依次比較兩個(gè)css。即先比較a,誰(shuí)大誰(shuí)的優(yōu)先級(jí)高,如果a一樣再比較b,依次類(lèi)推。

四、a:link, a:hover, a:active, a:visited 的順序是怎樣的? 為什么?

它的順序如下


原理:是根據(jù)css規(guī)則的覆蓋原理,和瀏覽器解釋CSS時(shí)遵循的“就近原則”;

這里有一個(gè)很詳細(xì)的解說(shuō),一定要看一看,尤其是后面的例子~(= v =)~
然后其中有一個(gè)總結(jié)

  • 一句話:在CSS中,如果對(duì)于相同元素有針對(duì)不同條件的定義,宜將最一般的條件放在最上面,并依次向下,保證最下面的是最特殊的條件。
    這樣,瀏覽器在顯示元素時(shí),才會(huì)從特殊到一般、逐級(jí)向上驗(yàn)證條件,才會(huì)使你的每一個(gè)CSS語(yǔ)句都起到效果。

五、以下選擇器分別是什么意思?

(1)
(2)列出你知道的偽類(lèi)選擇器
  • a:link {} /* 未訪問(wèn)的鏈接 /
    a:visited {} /
    已訪問(wèn)的鏈接 /
    a:hover {} /
    鼠標(biāo)移動(dòng)到鏈接上 /
    a:active {} /
    選定的鏈接 */
  • :first-child /首個(gè)子對(duì)象/
(3)div:first-child、div:first-of-type、div :first-child和div :first-of-type的作用和區(qū)別(注意空格的作用)
  • div:first-child 匹配父元素下,作為第一個(gè)子元素的div元素
  • div:first-of-type 匹配父元素的子元素中,第一個(gè)div元素
  • div :first-child 匹配所有div元素內(nèi)所有元素中屬于其父元素的首個(gè)子元素
  • div :first-of-type 匹配所有div元素內(nèi)所有元素中屬于其父元素的首個(gè)類(lèi)型的子元素
這里有我測(cè)試的幾組圖片,可以根據(jù)含義感受下,最好自己寫(xiě)幾組感受下(感覺(jué)可以多包含一些,這個(gè)例子還不全面)



(4)運(yùn)行如下代碼,解析下輸出樣式的原因
  • .item1:first-child,是在ct這個(gè)父元素中第一個(gè)子元素并且這個(gè)第一個(gè)子元素的類(lèi)名為“item1”(如果第一個(gè)子元素不是“item1”,則不匹配)
  • .item1:first-of-type,就是指所有類(lèi)名為“item1”的子元素中的第一個(gè)。這里“aa”是p類(lèi)型的第一個(gè),“bb”是h3類(lèi)型的第一個(gè)。
最后編輯于
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1.class 和 id 的使用場(chǎng)景? class:類(lèi)選擇器,一個(gè)標(biāo)簽可以有多個(gè)類(lèi)且同一個(gè)類(lèi)可以用到不同的標(biāo)簽上,...
    饑人谷_兔子君閱讀 1,280評(píng)論 0 0
  • 1、class和id的使用場(chǎng)景分別是什么? 首先,一個(gè)HTML文件中class名字可以有多個(gè)相同的,但是id的名字...
    李博洋li閱讀 1,029評(píng)論 0 1
  • id與class的使用場(chǎng)景 id選擇器,匹配特定id的元素類(lèi)選擇器,匹配class包含(不是等于)特定類(lèi)的元素id...
    姚小帥閱讀 411評(píng)論 0 0
  • 1.class 和 id 的使用場(chǎng)景? 兩者都能選取DOM節(jié)點(diǎn)并給DOM節(jié)點(diǎn)添加樣式,但是W3C標(biāo)準(zhǔn)里規(guī)定頁(yè)面中只...
    饑人谷_米彌輪閱讀 511評(píng)論 0 1
  • class 和 id 的使用場(chǎng)景? class寫(xiě)專(zhuān)門(mén)的class通用和私有模塊命名,id具有唯一性且優(yōu)先級(jí)太高,用...
    好好頑閱讀 485評(píng)論 0 0

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