淺析CSS選擇器和優(yōu)先級

CSS選擇器.png

本篇文章主要講述CSS選擇器是什么,CSS選擇器的分類,還有CSS選擇器的優(yōu)先級关串,如果有什么不足的地方歡迎大家來指點。

<h3>1.什么是CSS選擇器踩寇?</h3>
答:每一條css樣式定義由兩部分組成啄清,形式如下:選擇器{樣式}在{}之前的部分就是“選擇器”。 “選擇器”指明了{(lán)}中的“樣式”的作用對象俺孙,也就是“樣式”作用于網(wǎng)頁中的哪些元素
</br>
<h3>2.CSS選擇器常見的有幾種?</h3>
<li>選擇器的分類:</li>
選擇器大致開分為:基礎(chǔ)選擇器辣卒、組合選擇器、屬性選擇器睛榄、偽類選擇器和偽元素等</br>
1.基礎(chǔ)選擇器

a.id選擇器:通過設(shè)置元素的id屬性為該元素制定ID荣茫。ID由開發(fā)者指定。每個ID在文檔中必須是唯一的场靴。在寫樣式表時啡莉,ID選擇器是以#開頭的。

例子:
HTML:<div id="content">你好爸及咧欣!</div>
CSS: #content{border:1px solid #fff;}

b.class選擇器:是以獨立于文檔元素的方式來指定樣式,使用類選擇器之前需要在html元素上定義類名轨帜,也就是要保證類名在html標(biāo)記中存在魄咕。

例子:
HTML:<div class="content">你好啊</div>
CSS:.content{border:1px solid #fff;}

c.元素選擇器:通過note節(jié)點名稱匹配元素。

例子:
HTML:<span>您好</span>
CSS:span{font-size:14px;}

2.組合選擇器

選擇器 含義 實例
E,F 多元素選擇器蚌父,同時匹配所有E元素或F元素 div,p{background-color:blue;}
E F 后代元素選擇器哮兰,匹配所有屬于E元素的后代F元素 div a{background-color:blue;}
E>F 子元素選擇器,匹配所有E元素的子元素F div>h1{background-image:url(XXX.png);}
E+F 毗鄰元素選擇器苟弛,匹配所有緊隨E元素之后的同級元素F p+div{background-position:x% y%};

例子:


CSS選擇器例子.png

3.屬性選擇器

選擇器 含義 實例
E[att] 匹配所有具有att屬性的E元素 p[style]{background-repeat:repeat-y;}
E[att=val] 匹配所有att屬性等于“val”的E元素 div[class="c1"]
E[att~=val] 匹配所有att屬性具有多個空格分隔的值喝滞、其中一個值等于“val”的E元素 div[class~=c2]
E[att|=val] 匹配所有att屬性具有多個連字號分隔(hyphen-separated)的值、其中一個值以“val”開頭的E元素 p[lang|=en]

例子:

屬性選擇器例子.png

4.偽類選擇器

選擇器 含義 實例
E:first-child 匹配父元素E下的第一個子元素 div:first-child{text-align:center;}
E:link 匹配所有未被點擊的鏈接 '
E:visited 匹配所有已被點擊的鏈接 '
E:active 匹配鼠標(biāo)已經(jīng)按下嗡午、還沒有釋放的E元素 '
E:hover 匹配鼠標(biāo)懸停其上的E元素 '
E:focus 匹配獲得當(dāng)前焦點的E元素 '
E:lang(c) 匹配lang屬性等于c的E元素 '

例子:


偽類選擇器.png

5.偽元素

選擇器 含義 實例
E:first-line 匹配E元素的第一行 p:first-line{color:red;}
E:first-letter 匹配E元素的第一個字母 .c1:first-letter{color:blue;
E:before 在E元素之前插入生成的內(nèi)容 .ctn before{content:"";display:block;;height:40px;width:40px;}
E:after 在E元素之后插入生成的內(nèi)容 .ctn after{content:"";display:block;;height:40px;width:40px;}

例子:


偽元素.png

</br>

<h3>3.CSS的優(yōu)先級?</h3>

小peter我初出茅廬囤躁,里面許多知識通過閱覽其他同學(xué)的理解,和網(wǎng)上其它博客的文章,在整合而成狸演,如果缺陷言蛇,請大家指點指點。

1.那么選擇器的優(yōu)先級是怎么規(guī)定的呢宵距?
一般而言腊尚,選擇器越特殊,它的優(yōu)先級越高满哪。也就是選擇器指向的越準(zhǔn)確婿斥,它的優(yōu)先級就越高。通常我們用1表示<b>標(biāo)簽名選擇器</b>的優(yōu)先級哨鸭,用10表示<b>類選擇器</b>的優(yōu)先級民宿,用100標(biāo)示<b>ID選擇器</b>的優(yōu)先級。比如上例當(dāng)中.polaris span {color:red;}的選擇器優(yōu)先級是 10 + 1 也就是11像鸡;而 .polaris 的優(yōu)先級是10活鹰;瀏覽器自然會顯示紅色的字。理解了這個道理之后下面的優(yōu)先級計算自是易如反掌:
例如:
div.test1 .span var 優(yōu)先級 1+10 +10 +1
span#xxx .songs li 優(yōu)先級1+100 + 10 + 1
#xxx li 優(yōu)先級 100 +1
在比較樣式的優(yōu)先級時只估,只需統(tǒng)計選擇符中的id志群、class和標(biāo)簽名的個數(shù),然后把相應(yīng)的權(quán)值相加即可蛔钙,最后根據(jù)結(jié)果排出優(yōu)先級
另外:
<li>權(quán)值較大的優(yōu)先級越高
<li>權(quán)值相同的锌云,后定義的優(yōu)先級較高
<li>樣式值含有!important吁脱,優(yōu)先級最高

<li>后代選擇器的定位原則
在這里介紹一下對于后代選擇器桑涎,瀏覽器是如何查找元素的呢?
瀏覽器CSS匹配不是從左到右進(jìn)行查找豫喧,而是從右到左進(jìn)行查找石洗。比如DIV#divBox p span.red{color:red;},瀏覽器的查找順序如下:先查找html中所有class='red'的span元素紧显,找到后讲衫,再查找其父輩元素中是否有p元素,再判斷p的父元素中是否有id為divBox的div元素孵班,如果都存在則匹配上涉兽。**瀏覽器從右到左進(jìn)行查找的好處是為了盡早過濾掉一些無關(guān)的樣式規(guī)則和元素。
<b>(此段轉(zhuǎn)載饑人谷的犯迷糊的小羊)</b>

查看資料:
<a >阮一峰CSS選擇器</a>
<a >CSS選擇器優(yōu)先級分析</a>
<a >CSS選擇器深入理解</a>

感謝觀眾:

gaki.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篙程,一起剝皮案震驚了整個濱河市枷畏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌虱饿,老刑警劉巖拥诡,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件触趴,死亡現(xiàn)場離奇詭異,居然都是意外死亡渴肉,警方通過查閱死者的電腦和手機冗懦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仇祭,“玉大人,你說我怎么就攤上這事乌奇。” “怎么了礁苗?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長试伙。 經(jīng)常有香客問我贰谣,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任百宇,我火速辦了婚禮,結(jié)果婚禮上携御,老公的妹妹穿的比我還像新娘昌粤。我一直安慰自己,他們只是感情好啄刹,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著誓军,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捷雕。 梳的紋絲不亂的頭發(fā)上壹甥,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音句柠,去河邊找鬼棒假。 笑死精盅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的渤弛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼佳头,長吁一口氣:“原來是場噩夢啊……” “哼晴氨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起亭珍,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤枝哄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后挠锥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體众羡,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡粱侣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年蓖宦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稠茂。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡睬关,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出共螺,到底是詐尸還是另有隱情,我是刑警寧澤藐不,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站涎嚼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苔货。R本人自食惡果不足惜立哑,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诈茧。 院中可真熱鬧捂掰,春花似錦敢会、人聲如沸这嚣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卧土。三九已至像樊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間生棍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工友酱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柔纵,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓或详,卻偏偏與公主長得像,于是被迫代替她去往敵國和親霸琴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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