CSS選擇器

class 和 id 的使用場景?
  • id選擇器優(yōu)先級很高且只能使用一次臀突,因此一般用于頁面分塊的塊級標(biāo)簽上
  • 類選擇器纯出,一個標(biāo)簽上可以有多個類滥沫,且同一個類可以用在多個標(biāo)簽上松靡,多用于多個標(biāo)簽樣式相同時
CSS選擇器常見的有幾種?

常見的選擇器有:

  1. 基礎(chǔ)選擇器

    • * 通用元素選擇器
    • # id選擇器
    • .class 類選擇器
    • element 標(biāo)簽選擇器
  2. 屬性選擇器

    • E[attr] 匹配所有具有屬性attr的元素
    • E[attr=value] 匹配所有屬性attr的值為value的元素
    • E[attr^value] 匹配屬性attr的值以value開頭的元素
    • E[attr$value] 匹配屬性attr的值以value結(jié)尾的元素
  3. 偽類選擇器

    • E:first-child 匹配元素E的第一個子元素
    • E:hover 匹配鼠標(biāo)懸停的元素
    • E:link 匹配所有未被點擊的鏈接
    • E:visited 匹配所有已被點擊的鏈接
    • E:focus 匹配獲得當(dāng)前焦點的元素
    • E:active 匹配鼠標(biāo)已經(jīng)按下還未釋放的元素
    • E:enable 匹配表單中可用的元素
    • E:disable 匹配表單中禁用的元素
    • E:checked 匹配所有已被選擇的radio和checkbox元素
    • E:first-of-type 匹配父元素下使用同種標(biāo)簽的第一個子元素
  4. 組合選擇器

    • E F 后代選擇器
    • E+F 直接相鄰選擇器
    • E>F 子元素選擇器
    • E~F 普通相鄰選擇器
選擇器的優(yōu)先級是怎樣的?對于復(fù)雜場景如何計算優(yōu)先級狐榔?

優(yōu)先級從高到低依次是:

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

復(fù)雜場景下的計算:

  • 根據(jù)組合選擇器按照以下規(guī)則統(tǒng)計各類選擇器的個數(shù):
    行內(nèi)樣式 --> 統(tǒng)計值為a
    ID選擇器 --> 統(tǒng)計值為b
    類坛增、屬性選擇器、偽類選擇器 --> 統(tǒng)計為c
    標(biāo)簽選擇器薄腻、偽元素選擇器 --> 統(tǒng)計為d
  • 先比較a值的大小收捣,a值大的則優(yōu)先級高;如果a值相等,則再比較b值的大小庵楷,b值大的優(yōu)先級高罢艾;如果b值相等,則比較c值的大小尽纽,c值大的優(yōu)先級高咐蚯;如果c值相等,則比較d值的大小弄贿,d值大的優(yōu)先級高春锋;
a:link, a:hover, a:active, a:visited 的順序是怎樣的? 為什么差凹?

未點擊鏈接前期奔,link偽類長期處于激活狀態(tài),鼠標(biāo)懸停(或點擊)時危尿,a鏈接同時處于link和hover(或active)狀態(tài)呐萌,由于它們特指度相同,在同時激活的情況下,后出現(xiàn)的偽類樣式會覆蓋前面的偽類樣式寿桨,故link狀態(tài)必須寫在hover(或active)之前筐咧。
若把hover放在active后面,當(dāng)點擊鏈接一瞬渠旁,實際你在激活active狀態(tài)的同時觸發(fā)了hover偽類,hover在后面覆蓋了active的顏色,所以無法看到active的顏色船逮。故hover在active之前顾腊。
若把visited放在hover后面,那已訪問過的鏈接一直觸發(fā)著visited偽類挖胃,會覆蓋hover樣式杂靶。
最后梆惯,其實link、visited兩個偽類之間順序無所謂吗垮。(因為它倆不可能同時觸發(fā)垛吗,即又未訪問同時又已訪問。)

以下選擇器分別是什么意思?
  • #header{} 匹配id為header的元素
  • .header{} 匹配class為header的元素
  • .header .logo{} 匹配class為header的所有class為logo的后代元素
  • .header.mobile{} 匹配class="header mobile"的元素
  • .header p, .header h3{} 匹配class="header"元素的后代p元素和后代h3元素
  • #header .nav>li{} 匹配id="header"元素的后代中class="nav"的元素的li子元素
  • #header a:hover{} 匹配id="header"元素的后代中a元素的hover狀態(tài)
  • #header .logo~p{} 匹配id="header"元素的后代中class="logo"的元素相鄰p元素
  • #header input[type="text"]{} 匹配id="header"元素的后代中type="text"的input元素
列出你知道的偽類選擇器
  • E:first-child 匹配元素E的第一個子元素
  • E:hover 匹配鼠標(biāo)懸停的元素
  • E:link 匹配所有未被點擊的鏈接
  • E:visited 匹配所有已被點擊的鏈接
  • E:focus 匹配獲得當(dāng)前焦點的元素
  • E:active 匹配鼠標(biāo)已經(jīng)按下還未釋放的元素
  • E:enable 匹配表單中可用的元素
  • E:disable 匹配表單中禁用的元素
  • E:checked 匹配所有已被選擇的radio和checkbox元素
  • E:first-of-type 匹配父元素下使用同種標(biāo)簽的第一個子元素
div:first-child和div:first-of-type的作用和區(qū)別
  • div:first-child 匹配的是div元素的第一個子元素
  • div:first-of-type 指定父元素的首個div元素
運行如下代碼烁登,解析下輸出樣式的原因
<style>
.item1:first-child{
  color: red;
}
.item1:first-of-type{
  background: blue;
}
</style>
 <div class="ct">
   <p class="item1">aa</p>
/*類名為item1的父元素下的第一個子元素怯屉,所以符合樣式規(guī)則1;
類名為item1的父元素下的第一個p元素饵沧,所以也匹配樣式規(guī)則2*/
   <h3 class="item1">bb</h3>
/*類名為item1的父元素下的第二個子元素锨络,所以不符合樣式規(guī)則1;
類名為item1的父元素下的第一個h3元素狼牺,所以匹配樣式規(guī)則2*/
   <h3 class="item1">ccc</h3>
/*類名為item1的父元素下的第三個子元素羡儿,所以不符合樣式規(guī)則1;
類名為item1的父元素下的第二個h3元素是钥,所以也不匹配樣式規(guī)則2*/
 </div>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掠归,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子悄泥,更是在濱河造成了極大的恐慌虏冻,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件码泞,死亡現(xiàn)場離奇詭異兄旬,居然都是意外死亡,警方通過查閱死者的電腦和手機余寥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門领铐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宋舷,你說我怎么就攤上這事绪撵。” “怎么了祝蝠?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵音诈,是天一觀的道長。 經(jīng)常有香客問我绎狭,道長细溅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任儡嘶,我火速辦了婚禮喇聊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蹦狂。我一直安慰自己誓篱,他們只是感情好朋贬,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窜骄,像睡著了一般锦募。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上邻遏,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天糠亩,我揣著相機與錄音,去河邊找鬼准验。 笑死削解,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沟娱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼腕柜,長吁一口氣:“原來是場噩夢啊……” “哼济似!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盏缤,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤砰蠢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唉铜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體台舱,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年潭流,在試婚紗的時候發(fā)現(xiàn)自己被綠了竞惋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡灰嫉,死狀恐怖拆宛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情讼撒,我是刑警寧澤浑厚,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站根盒,受9級特大地震影響钳幅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炎滞,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一敢艰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厂榛,春花似錦盖矫、人聲如沸丽惭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽责掏。三九已至,卻和暖如春湃望,著一層夾襖步出監(jiān)牢的瞬間换衬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工证芭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瞳浦,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓废士,卻偏偏與公主長得像叫潦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子官硝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

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

  • 1.class 和 id 的使用場景? class:類選擇器矗蕊,一個標(biāo)簽可以有多個類且同一個類可以用到不同的標(biāo)簽上,...
    饑人谷_兔子君閱讀 1,183評論 0 0
  • class 和 id 的使用場景? class 重在樣式的復(fù)用氢架,重普遍性傻咖。id重在劃分樣式區(qū)域,可以作為樣式表中的...
    南山碼農(nóng)閱讀 369評論 0 0
  • 一岖研、CSS選擇器常見的有幾種? 基本選擇器 通配選擇器~選擇文檔中所有的html元素卿操,用一個*表示 元素選擇器~選...
    dengpan閱讀 961評論 0 3
  • 1,class 和 id 的使用場景? 1.class是類選擇器孙援,用.class定義害淤,定位到頁面中有相同特征的一類...
    饑人谷_思銘閱讀 368評論 0 0
  • class 和 id 的使用場景? id:id選擇器,使用#name命名,一個標(biāo)簽只能有一個id且每個id只能使用...
    jamesXiao_閱讀 234評論 0 0