任務(wù)7——CSS選擇器小記

1.class與id的使用場景

  • id是對標簽的標識匹颤,頁面內(nèi)唯一厚满,對應(yīng)CSS的選擇符是“#”府瞄;
  • class是對一類元素的標識碧磅,多個元素可具有相同的class碘箍,對應(yīng)CSS的選擇符是“.” ;
  • id用來識別標識元素遵馆,class用來設(shè)置樣式;

2.CSS常見的選擇器

  • 基礎(chǔ)選擇器
Paste_Image.png
  • 組合選擇器
Paste_Image.png
  • 偽類選擇器
Paste_Image.png
Paste_Image.png
  • 屬性選擇器
Paste_Image.png
  • 偽元素選擇器
Paste_Image.png

3.選擇器優(yōu)先級排列(由高到低)

  1. 在屬性后面使用 !important 會覆蓋頁面內(nèi)任何位置定義的元素樣式
  2. 作為style屬性寫在元素標簽上的內(nèi)聯(lián)樣式
  3. id選擇器
  4. 類選擇器
  5. 偽類選擇器
  6. 屬性選擇器
  7. 標簽選擇器
  8. 通配符選擇器
  9. 瀏覽器自定義

4.復(fù)雜場景如何計算選擇器優(yōu)先級

對于復(fù)雜場景丰榴,例如選擇器組合使用的情況货邓,可以先按照下列四個分級對該元素上應(yīng)用的選擇器進行分類,計算各自類別中的值

  • 行內(nèi)樣式 <div style="xxx"></div> ——level a
  • ID 選擇器 ——level b
  • 類四濒,屬性選擇器和偽類選擇器 ——level c
  • 標簽選擇器换况、偽元素 ——level d

例如:

ul ol li.active{}    /*a=0 b=0 c=1 d=3   0+0+1+3*/

上述例子中使用了1個類選擇器,3個標簽選擇器
計算出各自level的選擇器值后盗蟆,就可以比較了戈二,按照level由a到d,先比較a喳资,如果a相等觉吭,比較b,以此類推仆邓,數(shù)值大的優(yōu)先級高

5.下列標簽在應(yīng)用時的順序鲜滩,為什么?

a:link, a:hover, a:active, a:visited
首先节值,我們要明確想達到的一個效果:
鏈接本身一個樣式徙硅,鼠標懸停一個樣式,點擊一個樣式搞疗,訪問之后一個樣式嗓蘑,同時訪問后,鼠標再懸停和點擊也會有相應(yīng)的樣式匿乃。
因為選擇器之間有覆蓋原則脐往,同優(yōu)先級的,后定義的會覆蓋先定義的扳埂。
所以业簿,順序如下:

a:link
a:visited
a:hover
a:active

首先,規(guī)定鏈接的常規(guī)樣式阳懂,放在最前面梅尤,其他場景樣式在觸發(fā)時,才能覆蓋得以生效岩调;
其次巷燥,visited要在點擊和懸停之前,這樣后面兩個效果才會生效号枕;
最后缰揪,active是要在hover之后的,否則當(dāng)你點擊時實際上同時也觸發(fā)了懸停的樣式葱淳,定義在后面的hover就會覆蓋前面的active,所以為了讓active生效咕晋,要在hover后面谓传。

6.以下選擇器含義

#header{/*id選擇器,選擇id=“header”的元素*/
}
.header{/*類選擇器定硝,選擇class=“header”的元素*/
}
.header .logo{/*后代選擇器,選擇class=“header”header的所有class=“l(fā)ogo”的后代元素毫目,不只是子元素*/
}
.header.mobile{/*選擇同時具有header和mobile兩個class的元素*/
}
.header p, .header h3{/*選擇class="header*的元素的后代元素中的p元素和h3元素/
}
#header .nav>li{ /*選擇id="header*的元素的后代元素中class=“nav”的元素的所有直接子元素li*/
}
#header a:hover{/*選擇id="header*的后代元素中的a鏈接懸停時的效果/
}
#header .logo~p{/*選擇id="header*的后代元素中蔬啡,class=“l(fā)ogo”的同級p元素,即具有相同父元素/
}
#header input[type="text"]{/*選擇id="header*的后代元素中镀虐,type="text*的文本輸入框/
}

7.偽類選擇器

Paste_Image.png
Paste_Image.png

8.div:first-child箱蟆、div:first-of-type、div :first-child和div :first-of-type的作用和區(qū)別

實踐是檢驗真理的唯一標準刮便,對比了一下兩種用法的代碼效果

  • div:first-child
   div:first-child{
      color: red;
    }
    /*div :first-of-type{
      background: blue;
    }*/
</style>
</head>
<body>
 <div class="ct">
   <p class="item1">aa</p>
   <p class="item1">dd</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>
  <div class="ct">
   <p class="item1">aa</p>
   <p class="item1">dd</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>

效果:


Paste_Image.png
  • div :first-child(有個空格)
  <style>
   div :first-child{
      color: red;
    }
    /*div :first-of-type{
      background: blue;
    }*/
</style>
</head>
<body>
 <div class="ct">
   <p class="item1">aa</p>
   <p class="item1">dd</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>
  <div class="ct">
   <p class="item1">aa</p>
   <p class="item1">dd</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>

效果:


Paste_Image.png

從以上對比我們可以看出顽腾,div:first-child選中的是div的父元素的第一個子元素,所以第一個div下字體顏色都紅了诺核;而div :first-child(有個空格)抄肖,選中的是div后代中的第一個子元素,所以兩個div中只有第一個子元素p的字體顏色變紅了

  • div:first-of-type
  <style>
   div:first-of-type{
      color: red;
    }
    /*div :first-of-type{
      background: blue;
    }*/
</style>
</head>
<body>
  <p>test1</p>
  <p>test2</p>
 <div class="ct">
   <p class="item1">aa</p>
   <p class="item1">dd</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>

 <div class="ct">
   <p class="item1">aa</p>
   <p class="item1">dd</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>

效果:


Paste_Image.png
  • div :first-of-type(有個空格)
  <style>
   div :first-of-type{
      color: red;
    }
    /*div :first-of-type{
      background: blue;
    }*/
</style>
</head>
<body>
  <p>test1</p>
  <p>test2</p>
 <div class="ct">
   <p class="item1">aa</p>
   <p class="item1">dd</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>

 <div class="ct">
   <p class="item1">aa</p>
   <p class="item1">dd</p>
   <h3 class="item1">bb</h3>
   <h3 class="item1">ccc</h3>
 </div>

效果:


Paste_Image.png

從上述對比可以看出窖杀,div:first-of-type選中的是div的父元素的類型中第一次出現(xiàn)的div標簽漓摩,所以第一個div的字體都為紅色;而div :first-of-type(有個空格)入客,選擇對象變?yōu)榱薲iv的后代管毙,在后代中,選中第一次出現(xiàn)的各種類型標簽桌硫,所以兩個div中夭咬,第一次出現(xiàn)的p和h3字體變?yōu)榧t色。

8.解釋下列代碼效果的原因

<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>

首先铆隘,選中class="item1"的父元素的第一個子元素卓舵,使其字體顏色為紅色,所以aa是紅色膀钠;
其次掏湾,選中class="item1"的父元素中,第一次出現(xiàn)的各類型標簽肿嘲,使其背景為藍色融击,所以aa和bb是背景藍色,ccc是第二個出現(xiàn)的h3雳窟,背景不變藍色尊浪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拇涤,更是在濱河造成了極大的恐慌捣作,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件工育,死亡現(xiàn)場離奇詭異虾宇,居然都是意外死亡搓彻,警方通過查閱死者的電腦和手機如绸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旭贬,“玉大人怔接,你說我怎么就攤上這事∠」欤” “怎么了扼脐?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奋刽。 經(jīng)常有香客問我瓦侮,道長,這世上最難降的妖魔是什么佣谐? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任肚吏,我火速辦了婚禮,結(jié)果婚禮上狭魂,老公的妹妹穿的比我還像新娘罚攀。我一直安慰自己,他們只是感情好雌澄,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布斋泄。 她就那樣靜靜地躺著,像睡著了一般镐牺。 火紅的嫁衣襯著肌膚如雪炫掐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天睬涧,我揣著相機與錄音卒废,去河邊找鬼。 笑死宙地,一個胖子當(dāng)著我的面吹牛摔认,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宅粥,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼参袱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抹蚀,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤剿牺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后环壤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晒来,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年郑现,在試婚紗的時候發(fā)現(xiàn)自己被綠了湃崩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡接箫,死狀恐怖攒读,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辛友,我是刑警寧澤薄扁,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站废累,受9級特大地震影響邓梅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜邑滨,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一日缨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驼修,春花似錦殿遂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至耳峦,卻和暖如春恩静,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹲坷。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工驶乾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人循签。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓级乐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親县匠。 傳聞我的和親對象是個殘疾皇子风科,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

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

  • class 和 id 的使用場景? class寫專門的class通用和私有模塊命名撒轮,id具有唯一性且優(yōu)先級太高,用...
    好好頑閱讀 407評論 0 0
  • 一贼穆,class 和 id 的使用場景? id選擇器题山,匹配特定id的元素。class是類選擇器故痊,匹配class包含(...
    DeeJay_Y閱讀 361評論 0 0
  • 1顶瞳、class和id的使用場景分別是什么? 首先愕秫,一個HTML文件中class名字可以有多個相同的慨菱,但是id的名字...
    李博洋li閱讀 902評論 0 1
  • 1.class 和 id 的使用場景? class:類選擇器,一個標簽可以有多個類且同一個類可以用到不同的標簽上豫领,...
    饑人谷_兔子君閱讀 1,192評論 0 0
  • id與class的使用場景 id選擇器抡柿,匹配特定id的元素類選擇器舔琅,匹配class包含(不是等于)特定類的元素id...
    姚小帥閱讀 320評論 0 0