CSS選擇器與優(yōu)先級(jí)詳解(一)

文章主要介紹什么是CSS選擇器夫凸,CSS選擇器的分類以及CSS選擇器的優(yōu)先級(jí)三部分內(nèi)容照雁,希望能夠幫助到正在學(xué)習(xí)CSS的童鞋,有什么不足的地方歡迎大家批評(píng)指正晦溪。

一瀑粥、什么是CSS選擇器?

CSS選擇器又被稱為CSS樣式三圆、CSS屬性選擇器狞换。是由css命名及后面屬性及屬性值構(gòu)成一個(gè)整體。

二舟肉、CSS選擇器的分類

1.基礎(chǔ)選擇器
a.id選擇器:通過(guò)設(shè)置元素的id屬性為該元素制定ID修噪。ID由開(kāi)發(fā)者指定。每個(gè)ID在文檔中必須是唯一的路媚。在寫(xiě)樣式表時(shí)黄琼,ID選擇器是以#開(kāi)頭的。
HTML

<div id="header">我的前端學(xué)習(xí)之旅</div>

CSS

header{color:blue;}

執(zhí)行效果:



b.class選擇器:是以獨(dú)立于文檔元素的方式來(lái)指定樣式整慎,使用類選擇器之前需要在html元素上定義類名脏款,也就是要保證類名在html標(biāo)記中存在。
HTML

<div class="header">我的前端學(xué)習(xí)之旅</div>

CSS

.header{color:green;}

執(zhí)行效果:



c.元素選擇器:通過(guò)note節(jié)點(diǎn)名稱匹配元素裤园。
HTML

<span> Here is a span.</span>

CSS

span{
background-color:blue;
border:1px solid #ccc;
}

執(zhí)行效果:

2.屬性選擇器:

選擇器 含義 實(shí)例
E[attr] 匹配所有具有屬性attr的元素 p[title] { color:#f00; }
E[att=val] 匹配所有att屬性等于"val"的E元素 div[class=error] { color:#f00; }
E[att~=val] 匹配所有att屬性具有多個(gè)空格分隔的值撤师、其中一個(gè)值等于"val"的E元素 td[headers~=col1] { color:#f00; }
E[att/=val] 匹配所有att屬性具有多個(gè)連字號(hào)分隔(hyphen-separated)的值、其中一個(gè)值以"val"開(kāi)頭的E元素拧揽,主要用于lang屬性剃盾,比如"en"、"en-us"淤袜、"en-gb"等等 p[lang/=en] { color:#f00; }

注意:最后一個(gè)選擇器是E[attr|=val]痒谴,由于輸入|會(huì)對(duì)表格造成影響,只能用/代替铡羡。
CSS3新增了一些屬性選擇器积蔚,待持續(xù)更新。
3.組合選擇器

選擇器 含義 實(shí)例
E,F 多元素選擇器蓖墅,同時(shí)匹配所有E元素或F元素库倘,E和F之間用逗號(hào)分隔 div,p { border:1px solid #ccc;}
E F 后代元素選擇器,匹配所有屬于E元素后代的F元素论矾,E和F之間用空格分隔 div p{color:red;}
E > F 子元素選擇器教翩,匹配所有E元素的子元素F div > strong { color:#f00; }
E + F 毗鄰元素選擇器,匹配所有緊隨E元素之后的同級(jí)元素F p + p { color:#f00; }

示例如下:



實(shí)現(xiàn)效果如下:



4.偽類選擇器
選擇器 含義 實(shí)例
E:first-child 匹配父元素的第一個(gè)子元素 p:first-child { font-style:italic; }
E:link 匹配所有未被點(diǎn)擊的鏈接
E:visited 匹配所有已被點(diǎn)擊的鏈接
E:active 匹配鼠標(biāo)已經(jīng)其上按下贪壳、還沒(méi)有釋放的E元素
E:hover 匹配鼠標(biāo)懸停其上的E元素 input[type=text]:focus:hover { background:#fff; }
E:focus 匹配獲得當(dāng)前焦點(diǎn)的E元素 input[type=text]:focus { color:#000; background:#ffe; }
E:lang(c) 匹配lang屬性等于c的E元素 q:lang(sv) { quotes: "\201D" "\201D" "\2019" "\2019"; }

示例如下:


執(zhí)行效果:
鼠標(biāo)點(diǎn)擊之前:

鼠標(biāo)點(diǎn)擊之后:

CSS3新增的一些偽類選擇器之后會(huì)持續(xù)更新的饱亿,敬請(qǐng)期待。

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

從高到低依次是:
1.在屬性后面使用 !important會(huì)覆蓋頁(yè)面內(nèi)任何位置定義的元素樣式
2.作為style屬性寫(xiě)在元素標(biāo)簽上的內(nèi)聯(lián)樣式
3.id選擇器
4.類選擇器
5.偽類選擇器
6.屬性選擇器
7.標(biāo)簽選擇器
8.通配符選擇器
9.瀏覽器自定義

實(shí)際上彪笼,同一個(gè)元素可以使用多個(gè)規(guī)則來(lái)指定它的字體顏色钻注,每個(gè)規(guī)則都有自己的選擇器。顯然最終只有一個(gè)規(guī)則起作用(不可能一個(gè)字既是紅色又是綠色)配猫,那么該規(guī)則的特殊性最高幅恋,特殊性即css優(yōu)先級(jí)。那么CSS的優(yōu)先級(jí)怎么計(jì)算呢泵肄?

選擇器的特殊性值表述為4個(gè)部分捆交,用0,0,0,0表示。

  • ID選擇器的特殊性值腐巢,加0,1,0,0;
  • 類選擇器品追、屬性選擇器或偽類,加0,0,1,0;
  • 元素和偽元素冯丙,加0,0,0,1;
  • 通配選擇器對(duì)特殊性沒(méi)有貢獻(xiàn)肉瓦,即0,0,0,0;
  • 最后比較特殊的一個(gè)標(biāo)志!important(權(quán)重),它沒(méi)有特殊值胃惜,但是他的優(yōu)先級(jí)是最高的泞莉,為了方便記憶,可認(rèn)為他的默認(rèn)值是1,0,0,0.
    示例如下:

    執(zhí)行效果:

    選擇器的特殊性值是從左向右排列的
    先說(shuō)到這里吧蛹疯,有什么問(wèn)題歡迎大家指正戒财,剩下的內(nèi)容稍后會(huì)在wlf'Blog更新,敬請(qǐng)關(guān)注捺弦。

參考:
1.css優(yōu)先級(jí)計(jì)算規(guī)則
2.CSS選擇器筆記
3.Selectors MDN
4.CSS3 選擇器——基本選擇器
5.CSS3 選擇器——偽類選擇器
6.征服高級(jí)CSS選擇器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市孝扛,隨后出現(xiàn)的幾起案子列吼,更是在濱河造成了極大的恐慌,老刑警劉巖苦始,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寞钥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡陌选,警方通過(guò)查閱死者的電腦和手機(jī)理郑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咨油,“玉大人您炉,你說(shuō)我怎么就攤上這事∫鄣纾” “怎么了赚爵?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我冀膝,道長(zhǎng)唁奢,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任窝剖,我火速辦了婚禮麻掸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赐纱。我一直安慰自己论笔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布千所。 她就那樣靜靜地躺著狂魔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淫痰。 梳的紋絲不亂的頭發(fā)上最楷,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音待错,去河邊找鬼籽孙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛火俄,可吹牛的內(nèi)容都是我干的犯建。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瓜客,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼适瓦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起谱仪,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤玻熙,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后疯攒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體嗦随,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年敬尺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枚尼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡砂吞,死狀恐怖署恍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呜舒,我是刑警寧澤锭汛,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布笨奠,位于F島的核電站,受9級(jí)特大地震影響唤殴,放射性物質(zhì)發(fā)生泄漏般婆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一朵逝、第九天 我趴在偏房一處隱蔽的房頂上張望蔚袍。 院中可真熱鬧,春花似錦配名、人聲如沸啤咽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宇整。三九已至,卻和暖如春芋膘,著一層夾襖步出監(jiān)牢的瞬間鳞青,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工为朋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留臂拓,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓习寸,卻偏偏與公主長(zhǎng)得像胶惰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霞溪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

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