CSS選擇器知識(shí)點(diǎn)整理

1译荞、class 和 id 的使用場(chǎng)景?

  • id:指定標(biāo)簽的唯一標(biāo)識(shí)怀伦。根據(jù)提供的唯一id號(hào)坏瘩,快速獲取標(biāo)簽對(duì)象。如:document.getElementById(id)润脸。id屬性的值柬脸,在當(dāng)前的page頁(yè)面要是唯一的。

  • class:指定標(biāo)簽的類名毙驯。CSS操作倒堕,把一些特定樣式放到一個(gè)class類中,需要此樣式的標(biāo)簽爆价,可以在添加此類垦巴。

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

1、基礎(chǔ)選擇器骤宣,包括:

  • 通用元素選擇器秦爆,匹配頁(yè)面任何元素。示例:
    * { font-family: '微軟雅黑'; }

  • id選擇器憔披,匹配特定id的元素等限。示例:
    #id-selector{ color: #333; }

  • 類選擇器,匹配class包含(不是等于)特定類的元素芬膝。示例:
    .class-selector{ background: #f1f1f1; }

  • 標(biāo)簽選擇器望门。示例:
    p { height: 50px; line-height: 50px; }

2、組合選擇器

|選擇器 | 含義 |
| -------- |:------------- -----:|
| 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選擇器和選擇器連寫的時(shí)候中間沒(méi)有分隔符锈遥,. 和 # 本身充當(dāng)分隔符的元素|
|element#id | id和class選擇器和選擇器連寫的時(shí)候中間沒(méi)有分隔符纫事,. 和 # 本身充當(dāng)分隔符的元素|

3、屬性選擇器

|選擇器 | 含義 |
| -------- |:------------- -----:|
| 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的元素|

4爬立、偽類選擇器

|選擇器 | 含義 |
| -------- |:------------- -----:|
| 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 | 匹配用戶當(dāng)前選中的元素|
| 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()作用類似吟策,但是僅匹配使用同種標(biāo)簽的元素|
| E:nth-last-of-type(n) | 與:nth-last-child() 作用類似儒士,但是僅匹配使用同種標(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)前選擇器的任何元素|

n的取值:

  • 1,2赂乐,3薯鳍,4,5挨措,......
  • 2n+1, 2n, 4n-1
  • odd, even

5挖滤、偽元素選擇器

|選擇器 | 含義 |
| -------- |:------------- -----:|
| 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í)?

從高到低分別是:

1壶辜、在屬性后面使用 !important 會(huì)覆蓋頁(yè)面內(nèi)任何位置定義的元素樣式
2悯舟、作為style屬性寫在元素標(biāo)簽上的內(nèi)聯(lián)樣式
3、id選擇器
4砸民、類選擇器抵怎、
5、偽類選擇器
6岭参、屬性選擇器
7反惕、標(biāo)簽選擇器
8、通配符選擇器
9演侯、瀏覽器自定義

對(duì)于復(fù)雜的情況姿染,例如CSS規(guī)則由多個(gè)選擇器組成:

#test p.class1 {...}
#test .class1.class2 {...}

要計(jì)算諸如上述復(fù)雜場(chǎng)景的優(yōu)先級(jí),這時(shí)候我們可以做個(gè)簡(jiǎn)單的加法運(yùn)算秒际,id選擇器的權(quán)值為1000悬赏,class選擇器為100,標(biāo)簽選擇器為10娄徊,做一下運(yùn)算(當(dāng)然只是為了形象這么說(shuō)闽颇,一萬(wàn)個(gè)class選擇器加起來(lái)也不如一個(gè)id選擇器優(yōu)先級(jí)高)

這樣我們就能得知第二條的規(guī)則優(yōu)先級(jí)高一些,但是還有一種情況:

#parent p.class1
div #child.class1

<div id="parent">
    <p id="child" class="class1">
        Text
    </p>
</div>

按照我們剛才的方法計(jì)算寄锐,兩個(gè)的權(quán)值時(shí)相同的兵多,這時(shí)候應(yīng)該用那條規(guī)則呢?簡(jiǎn)單來(lái)說(shuō)一句話誰(shuí)更具體用誰(shuí)橄仆,也就是權(quán)值高的選擇器作用的越具體優(yōu)先級(jí)越高

我們可以看到兩個(gè)選擇器作用的元素都是p標(biāo)簽剩膘,id選擇器權(quán)值最高,第一條規(guī)則作用在了父元素上盆顾,第二條規(guī)則直接作用在了p標(biāo)簽本身上怠褐,所以我們認(rèn)為第二條選擇器的優(yōu)先級(jí)高

如果兩個(gè)選擇器規(guī)權(quán)值就是一樣,我們改怎么判斷呢您宪? 后面的覆蓋前面的惫搏!

div {color: #333;}
....
div {color: #666;}

這樣div文案的顏色明顯會(huì)是#666

總而言之判斷CSS選擇器規(guī)則優(yōu)先級(jí)很簡(jiǎn)單,每個(gè)選擇器本身有優(yōu)先級(jí)蚕涤,越具體優(yōu)先級(jí)越高

4、a:link, a:hover, a:active, a:visited 的順序是怎樣的铣猩? 為什么揖铜?

a:link:
用來(lái)定義超鏈接被訪問(wèn)前的樣式。
a:visited:
用來(lái)定義鏈接被訪問(wèn)后的樣式达皿。
a:hover:
用來(lái)定義鼠標(biāo)放到鏈接上天吓,但鼠標(biāo)鍵未被按下時(shí)的樣式贿肩。
a:active:
用來(lái)定義鼠標(biāo)放到連接上,并被按下時(shí)的樣式龄寞。

正確的順序?yàn)? a:link汰规、a:visited、a:hover物邑、a:active (其中溜哮,link和visited可以互換);

原因:

  • 鼠標(biāo)經(jīng)過(guò)的“未訪問(wèn)鏈接”可應(yīng)用a:link色解、a:hover茂嗓、a:active 這三種偽類選擇器來(lái)定義樣式,因?yàn)楹竺娴臉邮綍?huì)覆蓋前面的樣式科阎,所以a:hover應(yīng)放在a:link的后面述吸,a:active放在最后。
  • 鼠標(biāo)經(jīng)過(guò)的“已訪問(wèn)鏈接”可應(yīng)用a:visited锣笨、a:hover蝌矛、a:active這三種類選擇器來(lái)定義樣式,因?yàn)楹竺娴臉邮綍?huì)覆蓋前面的樣式错英,所以a:hover應(yīng)放在a:hovor的后面入撒,a:active放在最后。

所以說(shuō)走趋,a:hover定義一定要放在a:link衅金、a:visited的后面,a:active 放在最后簿煌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末氮唯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子姨伟,更是在濱河造成了極大的恐慌惩琉,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夺荒,死亡現(xiàn)場(chǎng)離奇詭異瞒渠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)技扼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門伍玖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人剿吻,你說(shuō)我怎么就攤上這事窍箍。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵椰棘,是天一觀的道長(zhǎng)纺棺。 經(jīng)常有香客問(wèn)我,道長(zhǎng)邪狞,這世上最難降的妖魔是什么祷蝌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮帆卓,結(jié)果婚禮上巨朦,老公的妹妹穿的比我還像新娘。我一直安慰自己鳞疲,他們只是感情好罪郊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著尚洽,像睡著了一般悔橄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腺毫,一...
    開(kāi)封第一講書(shū)人閱讀 49,950評(píng)論 1 291
  • 那天癣疟,我揣著相機(jī)與錄音,去河邊找鬼潮酒。 笑死睛挚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的急黎。 我是一名探鬼主播扎狱,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼勃教!你這毒婦竟也來(lái)了淤击?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤故源,失蹤者是張志新(化名)和其女友劉穎污抬,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體绳军,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡印机,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了门驾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片射赛。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奶是,靈堂內(nèi)的尸體忽然破棺而出咒劲,到底是詐尸還是另有隱情顷蟆,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布腐魂,位于F島的核電站,受9級(jí)特大地震影響逐纬,放射性物質(zhì)發(fā)生泄漏蛔屹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罗售,春花似錦趁蕊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至豪嗽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豌骏,已是汗流浹背龟梦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窃躲,地道東北人计贰。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蒂窒,于是被迫代替她去往敵國(guó)和親躁倒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • 1. class 和 id 的使用場(chǎng)景: id:id選擇器洒琢,使用#name定義(name為id名秧秉,可任意取名),使...
    石林濤閱讀 368評(píng)論 0 1
  • 其實(shí)平時(shí)用得多的選擇器無(wú)非也就是那么幾個(gè)纬凤,時(shí)間久了福贞,許多不常用的選擇器就慢慢忘記了。為了不讓自己忘記這些選擇器停士,今...
    盛夏晚清風(fēng)閱讀 1,824評(píng)論 0 5
  • class 和 id 的使用場(chǎng)景? class 重在樣式的復(fù)用挖帘,重普遍性。id重在劃分樣式區(qū)域恋技,可以作為樣式表中的...
    南山碼農(nóng)閱讀 369評(píng)論 0 0
  • 1 .class 和 id 的使用場(chǎng)景? .class拇舀,類選擇器。類選擇器可以定義多個(gè)元素蜻底。當(dāng)你想定義一組元素以相...
    饑人谷_邵征鵬閱讀 363評(píng)論 0 0
  • 創(chuàng)造一個(gè)員工想要?dú)w屬的組織
    寒山聽(tīng)音閱讀 172評(píng)論 0 0