CSS選擇器了解問(wèn)題搜集

1.class 和 id 的使用場(chǎng)景?

  • id:id選擇器衙四,使用#name定義(name為id名,可任意取名),使用id="name"調(diào)用遣妥,其優(yōu)先級(jí)高于類(lèi)選擇器,一個(gè)標(biāo)簽只能有一個(gè)id且每個(gè)id只能使用一次攀细,多用于頁(yè)面分塊的塊級(jí)標(biāo)簽上箫踩;
  • class:類(lèi)選擇器,使用.name定義(name為類(lèi)名谭贪,可任意取名)境钟,使用class="name"調(diào)用,一個(gè)標(biāo)簽可以有多個(gè)類(lèi)且同一個(gè)類(lèi)可以用到不同的標(biāo)簽上俭识,多用于多個(gè)標(biāo)簽樣式相似或完全相同時(shí)慨削。

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

  1. 基礎(chǔ)選擇器
  2. 組合選擇器
  3. 屬性選擇器
  4. 偽類(lèi)選擇器
  5. 偽元素選擇器

  • 基礎(chǔ)選擇器:
選擇器 含義
* 通用元素選擇器,匹配頁(yè)面任何元素(這也就決定了我們很少使用)
#id id選擇器套媚,匹配特定id的元素
.class 類(lèi)選擇器缚态,匹配class包含(不是等于)特定類(lèi)的元素
element 標(biāo)簽選擇器
  • 組合選擇器:
選擇器 含義
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 id和class選擇器和選擇器連寫(xiě)的時(shí)候中間沒(méi)有分隔符环葵,. 和 # 本身充當(dāng)分隔符的元素
element#id id和class選擇器和選擇器連寫(xiě)的時(shí)候中間沒(méi)有分隔符调窍,. 和 # 本身充當(dāng)分隔符的元素
  • 屬性選擇器:
選擇器 含義
E[attr] 匹配所有具有屬性attr的元素,div[id]就能取到所有有id屬性的div
E[attr = value] 匹配屬性attr值為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的元素
  • 偽類(lèi)選擇器:
選擇器 含義
E:first-child 匹配元素E的第一個(gè)子元素
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 匹配用戶(hù)當(dāng)前選中的元素
  • 偽類(lèi)選擇器:
選擇器 含義
E:root 匹配文檔的根元素菊卷,對(duì)于HTML文檔缔恳,就是HTML元素
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)簽的元素
E:last-child 匹配父元素的最后一個(gè)子元素扑眉,等同于:nth-last-child(1)
E:first-of-type 匹配父元素下使用同種標(biāo)簽的第一個(gè)子元素纸泄,等同于:nth-of-type(1)
E:last-of-type 匹配父元素下使用同種標(biāo)簽的最后一個(gè)子元素,等同于:nth-last-of-type(1)
E:only-child 匹配父元素下僅有的一個(gè)子元素腰素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)
E:only-of-type 匹配父元素下使用同種標(biāo)簽的唯一一個(gè)子元素聘裁,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)
E:empty 匹配一個(gè)不包含任何子元素的元素,文本節(jié)點(diǎn)也被看作子元素
E:not(selector) 匹配不符合當(dāng)前選擇器的任何元素
  • 偽元素選擇器:
選擇器 含義
E::first-line 匹配E元素內(nèi)容的第一行
E::first-letter 匹配E元素內(nèi)容的第一個(gè)字母
E::before 在E元素之前插入生成的內(nèi)容
E::after 在E元素之后插入生成的內(nèi)容

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

CSS優(yōu)先級(jí):
從高到低分別是:

  1. 在屬性后面使用 !important 會(huì)覆蓋頁(yè)面內(nèi)任何位置定義的元素樣式
  2. 作為style屬性寫(xiě)在元素標(biāo)簽上的內(nèi)聯(lián)樣式
  3. id選擇器
  4. 類(lèi)選擇器
  5. 偽類(lèi)選擇器
  6. 屬性選擇器
  7. 標(biāo)簽選擇器
  8. 通配符選擇器
  9. 瀏覽器自定義
  • 根據(jù)組合選擇器按照以下規(guī)則統(tǒng)計(jì)各類(lèi)選擇器的個(gè)數(shù):
- 行內(nèi)樣式 --> 統(tǒng)計(jì)為a
- ID選擇器 --> 統(tǒng)計(jì)為b
- 類(lèi)衡便、屬性選擇器、偽類(lèi)選擇器 --> 統(tǒng)計(jì)為c
- 標(biāo)簽選擇器洋访、偽類(lèi)選擇器 --> 統(tǒng)計(jì)為d
  • 先比較a值的大小镣陕,a值大的則優(yōu)先級(jí)高;如果a值相等,則再比較b值的大小姻政,b值大的優(yōu)先級(jí)高呆抑;如果b值相等,則比較c值的大小扶歪,c值大的優(yōu)先級(jí)高理肺;如果c值相等,則比較d值的大小善镰,d值大的優(yōu)先級(jí)高妹萨;
選擇器                                               統(tǒng)計(jì)值                     
style="color: red"                                 a=1, 0, 0, 0                   
#id {}                                             0, b=1, 0, 0    
#id #aid                                           0,b= 2, 0, 0    
.sty {}                                            0, 0, c=1, 0    
.sty p[title=""] {}                                0, 0, c=2, 0    
p:hover {}                                         0, 0,c= 1, 0    
p {}                                               0, 0, 0,d= 1    
ul::after {}                                       0, 0, 0, d=1    
div p {}                                           0, 0, 0,d= 2

4.a:link, a:hover, a:active, a:visited 的順序是怎樣的? 為什么炫欺?

  • 在 CSS 定義中乎完,a:hover 必須被置于 a:link 和 a:visited 之后,才是有效的品洛。
  • 在 CSS 定義中树姨,a:active 必須被置于 a:hover 之后(如果沒(méi)有a:hover則必須被置于 a:link 和 a:visited 之后)摩桶,才是有效的。

正確的順序?yàn)閍:link帽揪、a:visited硝清、a:hover、a:active (其中转晰,link和visited可以互換)

原因:

  • 當(dāng)鼠標(biāo)移動(dòng)到a標(biāo)簽上芦拿,此時(shí)與標(biāo)簽顏色相關(guān)的選擇器有:a:link,a:visited,a:hover,這三個(gè)選擇器,被寫(xiě)在最后的選擇器會(huì)覆蓋掉之前的選擇器,要想實(shí)現(xiàn)“a:hover”的效果查邢,需要將a:hover置于 a:link 和 a:visited 之后蔗崎。
  • 當(dāng)鼠標(biāo)點(diǎn)擊a標(biāo)簽,此時(shí)與標(biāo)簽顏色相關(guān)的選擇器有:a:link,a:visited,a:hover和a:active扰藕,這四個(gè)選擇器,被寫(xiě)在最后的選擇器會(huì)覆蓋掉之前的選擇器缓苛,因此要想實(shí)現(xiàn)“a:active”的效果,需要將a:active置于a:link,a:visited,a:hover 之后邓深。

5.以下選擇器分別是什么意思?

#header{ } /*id選擇器未桥,匹配id="header"的元素*/ 
.header{ } /*類(lèi)選擇器,匹配class="header"的元素*/
.header .logo{ } /*后代選擇器庐完,匹配class="header"元素的后代元素中class="logo"的元素*/
.header.mobile{ } /*類(lèi)選擇器钢属,匹配class="header mobile"的元素*/
.header p, .header h3{ } /*多元素選擇器徘熔,匹配class="header"元素的后代p元素和后代h3元素*/ 
#header .nav>li{ } /*多元素選擇器门躯,匹配id="header"元素的后代class="nav"元素的直接后代li元素*/ 
#header a:hover{ } /*偽類(lèi)選擇器,匹配id="header"元素的后代a元素鼠標(biāo)懸浮在其表面時(shí)的樣式*/
  • 列出你知道的偽類(lèi)選擇器:
選擇器 含義
E:first-child 匹配元素E的第一個(gè)子元素
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:root 匹配文檔的根元素讶凉,對(duì)于HTML文檔,就是HTML元素
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:only-child 匹配父元素下僅有的一個(gè)子元素台颠,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)
E:only-of-type 匹配父元素下使用同種標(biāo)簽的唯一一個(gè)子元素褐望,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)
  • div:first-child和div:first-of-type的作用和區(qū)別:

    • div:first-child:父元素的第一個(gè)子元素且必須符合指定類(lèi)型(為div)
    • div:first-of-type:匹配的是其父元素下相同類(lèi)型子元素中的第一個(gè),不一定只有一個(gè)子元素串前,而是在父元素下不同標(biāo)簽的第一個(gè)子元素瘫里;
  • 運(yùn)行如下代碼,解析下輸出樣式的原因荡碾。

<style>
.item1:first-child{
  color: red;
}
.item1:first-of-type{
  background: blue;
}
</style>
 <div class="ct">
   <p class="item1">aa</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>
結(jié)果

分析:

  1. .item1:first-child :class為item1的元素為 <p class="item1">aa</p>谨读、<h3 class="item1">bb</h3><h3 class="item1">ccc</h3>坛吁,父元素為<div class="ct">劳殖,該div的第一個(gè)子元素為<p class="item1">aa</p>铐尚,因此aa為紅色

  2. .item1:first-of-type :class為item1的元素為<p class="item1">aa</p><h3 class="item1">bb</h3>哆姻、<h3 class="item1">ccc</h3>宣增,父元素為<div class="ct">,該div的第一個(gè)<p>子元素為<p class="item1">aa</p>矛缨,所以aa背景藍(lán)色统舀,該div的第一個(gè)<h3>子元素為<h3 class="item1">bb</h3>,所以bb背景藍(lán)色劳景,而<h3 class="item1">ccc</h3>為該div的第二個(gè)<h3>子元素誉简,非同類(lèi)第一個(gè)元素,因此ccc沒(méi)有背景藍(lán)色盟广。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末闷串,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子筋量,更是在濱河造成了極大的恐慌烹吵,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桨武,死亡現(xiàn)場(chǎng)離奇詭異肋拔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)呀酸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)凉蜂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人性誉,你說(shuō)我怎么就攤上這事窿吩。” “怎么了错览?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵纫雁,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我倾哺,道長(zhǎng)轧邪,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任羞海,我火速辦了婚禮忌愚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扣猫。我一直安慰自己菜循,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著癌幕,像睡著了一般段审。 火紅的嫁衣襯著肌膚如雪羽戒。 梳的紋絲不亂的頭發(fā)上第美,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天耙替,我揣著相機(jī)與錄音,去河邊找鬼胶逢。 笑死厅瞎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的初坠。 我是一名探鬼主播和簸,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼碟刺!你這毒婦竟也來(lái)了锁保?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤半沽,失蹤者是張志新(化名)和其女友劉穎爽柒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體者填,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浩村,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了占哟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片心墅。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖重挑,靈堂內(nèi)的尸體忽然破棺而出嗓化,到底是詐尸還是另有隱情棠涮,我是刑警寧澤谬哀,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站严肪,受9級(jí)特大地震影響史煎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驳糯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一篇梭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酝枢,春花似錦恬偷、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)坦康。三九已至,卻和暖如春诡延,著一層夾襖步出監(jiān)牢的瞬間滞欠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工肆良, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筛璧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓惹恃,卻偏偏與公主長(zhǎng)得像夭谤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巫糙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案沮翔? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,748評(píng)論 1 92
  • id與class的使用場(chǎng)景 id選擇器,匹配特定id的元素類(lèi)選擇器曲秉,匹配class包含(不是等于)特定類(lèi)的元素id...
    姚小帥閱讀 320評(píng)論 0 0
  • 1采蚀、class和id的使用場(chǎng)景分別是什么? 首先承二,一個(gè)HTML文件中class名字可以有多個(gè)相同的榆鼠,但是id的名字...
    李博洋li閱讀 902評(píng)論 0 1
  • 1.class 和 id 的使用場(chǎng)景? class:類(lèi)選擇器,一個(gè)標(biāo)簽可以有多個(gè)類(lèi)且同一個(gè)類(lèi)可以用到不同的標(biāo)簽上亥鸠,...
    饑人谷_兔子君閱讀 1,192評(píng)論 0 0
  • 一妆够,class 和 id 的使用場(chǎng)景? id選擇器,匹配特定id的元素负蚊。class是類(lèi)選擇器神妹,匹配class包含(...
    DeeJay_Y閱讀 361評(píng)論 0 0