在前端的道路學習過程研乒,CSS的選擇器的權重的問題知識點是不可避免的止吁。
下面先簡單回顧一下三種常用的選擇器,id選擇器挽封、class選擇器已球、標簽選擇器(type)。一般為了分方便區(qū)分三種選擇器的權重辅愿,分別以1.0.0和悦、0.1.0、0.0.1方式來對區(qū)分三者之間的大小關系渠缕。
那么CSS樣式中只需要比誰權重數組大就執(zhí)行誰鸽素,可是真的是只需要比權重大小就可以了嗎?還是說只是在某種情況下才適合比權重亦鳞?不要著急馍忽,相信通過后面的5道題講解。你會對CSS權重有一個更深的了解燕差。
第一道題:
看到這一題遭笋,想必大家都沒有問題。第一個樣式權重為1.1.1徒探,第二個樣式權重為1.0.3瓦呼,第三個樣式權重為0.3.4。
所以此題最后的答案测暗,文字的顏色就是紅色央串。
第一題很簡單的基礎知識,相信大部分人都應該沒問題碗啄。所以第一題基本上是用來給各位增強信心的质和,那么后面的幾題就沒有那么簡單了,到處埋著坑呢稚字。
第二題:
看到這一題之后饲宿,按照第一題的邏輯。第一個樣式權重0.2.2 第二個樣式權重1.0.0.
所以這一題的文字顏色應該是藍色胆描。
最后實際的結果:文字的顏色為red紅色瘫想。
這里有同學會抓狂,為什么比權重的大小一個行的通昌讲,一個行不通呢国夜?
讓我們重新看看這兩個代碼
通過代碼和相關注釋,相信對于權重的理解又加深一點了吧剧蚣。乘熱打鐵支竹,讓我們馬上進入下一題代碼。
第三題:
這一題對比第二種情況更加復雜了鸠按,有選中和沒有選中兩種情況礼搁。那么到底是執(zhí)行那一種規(guī)則呢?相信有許多人犯迷糊目尖,不知道如何選擇了馒吴。那么我也不繞彎子,
答案:文字最終的顏色為藍色瑟曲。
具體原因饮戳,請看下面的圖文介紹:
第四題:
這里兩個樣式都有選中元素,同時權重的等級大小也相同洞拨。那么文字的顏色到底聽誰的呢扯罐?
最后結果顯示,文字顏色為橙色烦衣。
因為在權重一樣且又直接選中元素的的情況下歹河,誰的樣式排在后面聽誰的。
第五題:
這里的代碼太長了花吟,我就不一一全部截圖下來了秸歧。但是通過圖片可以大概看出來結構層,這個文字放在12個div當中衅澈。那么本題就考驗的超過10個標簽權重是否能夠比一個類名權重更大键菱。
結果:文字的顏色為藍色。
說明了今布,1.0.0经备、0.1.0、0.0.1之間關系并不是像平常數學中的10進制一樣部默,逢10進一弄喘。他們之間的進制相差等級很大,至于相差多少甩牺。沒有進一步深入去測試研究蘑志,因為幾乎沒有誰在實際開發(fā)過程當中,嵌套10個以上的標簽贬派。那樣的網頁會臃腫不堪急但,不利于維護。所以這個僅僅作為一個參考知識點搞乏!有興趣的可以測試一下波桩!
最后讓我們對這5道題進行一個總結:
1、? 在考慮瀏覽器執(zhí)行哪一個樣式之前请敦,先看樣式有沒有直接被選中镐躲。如果直接選中了储玫,按照id數、類數萤皂、標簽數來計算權重撒穷,誰最后的權重數值聽誰的。如果數值一樣裆熙,則誰寫在后面聽誰的端礼。
2、? 如果沒有直接被選中入录,那么就按照就近原則的方式執(zhí)行蛤奥。
這里還簡單的畫了一下關于解決權重問題的思維草圖
好了,以上就是CSS經典權重5道題解析了僚稿。如有寫的不合理的地方凡桥,歡迎多多指出。