CSS:CSS選擇器及優(yōu)先級問題

CSS三大特性—— 繼承烘嘱、 優(yōu)先級和層疊昆禽。

繼承:即子類元素繼承父類的樣式;

優(yōu)先級:是指不同類別樣式的權(quán)重比較;

層疊:是說當數(shù)量相同時蝗蛙,通過層疊(后者覆蓋前者)的樣式。

1.CSS選擇器分類

  • 全局選擇器(通配符*)
  • 標簽選擇器(body醉鳖,div捡硅,p,ul盗棵,li)
  • 類選擇器(.)
  • ID選擇器(#)
  • 組合選擇器(.head .head_loge壮韭,兩選擇器之間用空格隔開)
  • 后代選擇器(#head .nav li ul,從父級到子孫集的選擇器)
  • 子選擇器(div>p)
  • 群組選擇器(div纹因,span喷屋,img{color:red;}瞭恰,即將具有相同樣式的標簽分組顯示)
  • 繼承選擇器(div p屯曹,兩選擇器用空格鍵分開)
  • 偽類選擇器(鏈接樣式a元素的偽類::link(未被訪問),:visited(已訪問)惊畏,:active(被選擇)恶耽,:hover(當鼠標懸停在鏈接上))
  • 字符串匹配的屬性選擇符(^(開始),$(中間)颜启,*(結(jié)尾))
  • css相鄰兄弟選擇器(如h1+p)

2.CSS選擇器優(yōu)先級

不同級別:偷俭!important(在樣式屬性后不加“;”,在!important后加分號)>行內(nèi)樣式>ID選擇器>Class選擇器>標簽>通配符
相同級別:

(1)同一級別中后寫的會覆蓋先寫的樣式
(2)選擇器約分

**CSS優(yōu)先級:是由四個級別和各級別出現(xiàn)次數(shù)決定的
四個級別:行內(nèi)樣式缰盏,ID選擇器涌萤,Class選擇器,標簽
每個規(guī)則對應一個初始值0,0,0,0
若是 行內(nèi)選擇符乳规,則加1形葬、0、0暮的、0

若是 ID選擇符笙以,則加0、1冻辩、0猖腕、0

若是 類選擇符/屬性選擇符/偽類選擇符,則分別加0恨闪、0倘感、1、0

若是 元素選擇符/偽元素選擇符咙咽,則分別加0老玛、0、0、1

算法:將每條規(guī)則中蜡豹,選擇符對應的數(shù)相加后得到的”四位數(shù)“麸粮,從左到右進行比較,大的優(yōu)先級越高镜廉。**

注意:
①弄诲、!important的優(yōu)先級是最高的,但出現(xiàn)沖突時則需比較”四位數(shù)“;

②娇唯、優(yōu)先級相同時齐遵,則采用就近原則,選擇最后出現(xiàn)的樣式;

③塔插、繼承得來的屬性梗摇,其優(yōu)先級最低;

!important > 行內(nèi)樣式>ID選擇器 > 類選擇器 > 標簽 > 通配符 > 繼承 > 瀏覽器默認屬性

css選擇器使用強烈建議采用低權(quán)重原則,利于充分發(fā)揮css的繼承性佑淀,復用性留美,模塊化、組件化伸刃。

3.CSS 選擇器解析原則

從右向左進行解析,切記7瓯丁E趼!能夠減少節(jié)點的便利较雕。


瀏覽器從右向左解析CSS選擇器

style樣式

如果從左到右一層一層的篩選:首先會看到很多div被篩選出來碉哑,接下來篩選每一個div,首先在#div2中看到了class=p1的p亮蒋,此時我們很是高興扣典,感覺勝利就在前方了,再看class=p1的p標簽的子元素慎玖,看到第一個很是失望贮尖,不符合span.red,不要急趁怔,再看下一個又不符合規(guī)則湿硝,小小的安慰自己一下,最后一個含有class润努,說不定就是了关斜,結(jié)果,結(jié)果居然class=green铺浇,此時火冒三丈痢畜,就差最后一層,怎奈居然出現(xiàn)這種事,無奈之下只能在返回#div2繼續(xù)匹配它的子元素....

但如果我們換一個思路丁稀,首先匹配class=red 的 span吼拥,我們找到2個符合條件的的span然后在和上一次比對,我們需要的是span.red 是 p.p1的下屬元素二驰,此時就發(fā)現(xiàn)剛才篩選出來的第二個 span 元素不符合要求扔罪,再來匹配第一個,層層向上匹配桶雀,最終匹配成功矿酵。

4.簡潔,高效的CSS

所謂高效就是讓瀏覽器查找更少的元素標簽來確定匹配的style元素矗积。
1.不要再ID選擇器前使用標簽名
解釋:ID選擇是唯一的全肮,加上標簽名相當于畫蛇添足了,沒必要棘捣。
2.不要在類選擇器前使用標簽名
解釋:如果沒有相同的名字出現(xiàn)就是沒必要辜腺,但是如果存在多個相同名字的類選擇器則有必要添加標簽名防止混淆如(p.colclass{color:red;} 和 span.colclass{color:red;}
3.盡量少使用層級關(guān)系;
#divclass p.colclass{color:red;}改為 .colclass{color:red;}
4.使用類選擇器代替層級關(guān)系(如上)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乍恐,一起剝皮案震驚了整個濱河市评疗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌茵烈,老刑警劉巖百匆,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異呜投,居然都是意外死亡加匈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門仑荐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雕拼,“玉大人,你說我怎么就攤上這事粘招∩犊埽” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵男图,是天一觀的道長示姿。 經(jīng)常有香客問我,道長逊笆,這世上最難降的妖魔是什么栈戳? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮难裆,結(jié)果婚禮上子檀,老公的妹妹穿的比我還像新娘镊掖。我一直安慰自己,他們只是感情好褂痰,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布亩进。 她就那樣靜靜地躺著,像睡著了一般缩歪。 火紅的嫁衣襯著肌膚如雪归薛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天匪蝙,我揣著相機與錄音主籍,去河邊找鬼。 笑死逛球,一個胖子當著我的面吹牛千元,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颤绕,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼幸海,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奥务?” 一聲冷哼從身側(cè)響起物独,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氯葬,沒想到半個月后议纯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡溢谤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了憨攒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片世杀。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肝集,靈堂內(nèi)的尸體忽然破棺而出瞻坝,到底是詐尸還是另有隱情,我是刑警寧澤杏瞻,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布所刀,位于F島的核電站,受9級特大地震影響捞挥,放射性物質(zhì)發(fā)生泄漏浮创。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一砌函、第九天 我趴在偏房一處隱蔽的房頂上張望斩披。 院中可真熱鬧溜族,春花似錦、人聲如沸垦沉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厕倍。三九已至寡壮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間讹弯,已是汗流浹背况既。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闸婴,地道東北人坏挠。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像邪乍,于是被迫代替她去往敵國和親降狠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案庇楞? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,762評論 1 92
  • 本課來自http://www.imooc.com/learn/9請不要用作商業(yè)用途榜配。 HTML5 HTML介紹 H...
    PYLON閱讀 3,234評論 0 5
  • 轉(zhuǎn)載請聲明 原文鏈接地址 關(guān)注公眾號獲取更多資訊 第一部分 HTML 第一章 職業(yè)規(guī)劃和前景 職業(yè)方向規(guī)劃定位...
    程序員poetry閱讀 16,562評論 32 459
  • 本文主要是起筆記的作用,內(nèi)容來自慕課網(wǎng). 認識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,652評論 0 30
  • 姓名:胡小林吕晌,公司:和勝事業(yè) 【日精進打卡第※7※天】 【知~學習】 《六項精進》5遍 共38遍 《大學》遍 共1...
    和勝胡小林閱讀 188評論 0 0