摘要:選擇器優先級與效率優化本文收集網上各處關于選擇器的文章總結,并自己歸納一篇。選擇器類選擇器標簽選擇器相鄰選擇器子選擇器后代選擇器通配符選擇器屬性選擇器偽類選擇器優先級高的不一定效率高舉個例子與前者效率高于后者,而后者優先級高于前者。
CSS選擇器優先級與效率優化
Date: 7th of Aug, 2015
Author: HaoyCn
本文收集網上各處關于CSS選擇器的文章總結,并自己歸納一篇。
各類選擇器的優先級important聲明 1,0,0,0
ID選擇器 0,1,0,0
類選擇器 0,0,1,0
偽類選擇器 0,0,1,0
屬性選擇器 0,0,1,0
標簽選擇器 0,0,0,1
偽元素選擇器 0,0,0,1
通配符選擇器 0,0,0,0
在上面的選擇器中,此外,經測試
屬性選擇器 = 偽類選擇器(應用最后一個)
:last-child{color:red;} [desc]{color:green;}
偽類選擇器 > 相鄰選擇器
:last-child{color:green;} p ~ p{color:blue;}
相鄰選擇器 = 子選擇器 = 后代選擇器(應用最后一個)
p~p{color:red;} body p{color:blue;} body > p{color:green;}
后代選擇器 > 標簽選擇器
p ~ p{color:blue;} p{color:green;}樣式位置的影響
同 同級,應用取決于標簽和 標簽的先后順序
元素style=""屬性的優先級高于以上兩種樣式
!important 優先級高于以上兩種樣式
備注
!important 在IE6中的BUG:在同一組CSS屬性中, !important不起作用。如:
#selector{color:blue !important;color:green;}選擇器效率
讀取選擇器的原則是從右到左。因此,我們書寫的右邊的最后一個選擇器,被稱作關鍵選擇器,對于效率有決定性影響。
以下效率排行由 @Steve Souders 提供。
ID選擇器
類選擇器
標簽選擇器
相鄰選擇器
子選擇器
后代選擇器
通配符選擇器
屬性選擇器
偽類選擇器
優先級高的不一定效率高
舉個例子:#id .class 與 div#id p.class
前者效率高于后者,而后者優先級高于前者。我們需要在效率與優先級之間平衡取舍。
優化建議以下網址提供了諸多建議:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficie...
扼要摘其精要總結如下:
避免使用通配符
不使用標簽名或類名修飾ID規則:如果規則使用ID選擇器作為關鍵選擇器,不要給規則添加標簽名。因為ID本身就是唯一的,添加標簽名會不必要地降低匹配效率。
不使用標簽名修飾類:相較于標簽,類更具獨特性。
盡量選擇最具體的方式:造成低效的最簡單粗暴的原因就是在標簽上使用太多規則。給元素添加類可以更快細分到類方式,可以減少規則去匹配標簽的時間。
關于后代選擇器和子選擇器:避免使用后代選擇器,非要用的話建議用子選擇器代替,但子選擇器也要慎用,標簽規則永遠不要包含子選擇器。
利用可繼承性:沒必要在一般內容上聲明樣式。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/111096.html
摘要:每個標簽可有一個獨立的號。該標簽是一個內聯元素,與塊級元素相反,內聯元素不會自動在前后自動放置換行符,因此內聯元素會默認在同一行顯示。前端語言基礎:HTML5 & CSS (一) HTML5:超文本標記語言 (1) 基本概念是由一系列成對出現的元素標簽(標記)嵌套組合而成 ( XML也是標簽構成的 )這些標簽以<標簽名稱>的形式出現,用于標記文本內容的含義瀏覽器通過元素標...
摘要:不要在編寫規則時用標簽名或類名不要在編寫規則時用標簽名把多層標簽選擇規則用規則替換,減少查找避免使用子選擇器后代選擇器在中是最昂貴的選擇器。如果你關心頁面性能的話,他們真不該被使用擴展閱讀前端面試題選擇器前端面試題優先級 一、CSS選擇符 CSS選擇符由一些初始化參數組成,這些參數指明了要應用這個CSS規則的頁面元素。 作為一個網站的前端開發工程師,應該避免編寫一些常見的開銷很大的CS...
摘要:不要在編寫規則時用標簽名或類名不要在編寫規則時用標簽名把多層標簽選擇規則用規則替換,減少查找避免使用子選擇器后代選擇器在中是最昂貴的選擇器。如果你關心頁面性能的話,他們真不該被使用擴展閱讀前端面試題選擇器前端面試題優先級 一、CSS選擇符 CSS選擇符由一些初始化參數組成,這些參數指明了要應用這個CSS規則的頁面元素。 作為一個網站的前端開發工程師,應該避免編寫一些常見的開銷很大的CS...
摘要:優先級相同,與元素近的選擇器生效。使用建議建議說明避免將通用選擇器作為通用選擇器。避免選擇器用標簽。避免使用子選擇器。后代選擇器是開銷最最最最大的。 看了一下最近寫的css代碼,發現基本只用到了id選擇器(js里)、后代選擇器和類選擇器(因為聽大牛推薦使用類選擇器,然后就開始大篇幅使用。。。)。所以想深入學習一下css選擇器和css的效率優化,先記錄所學的一部分,以備后續補充。 選擇器...
摘要:本節內容會跟著上一節的內容繼續完善,首先會補充選擇器的瀏覽器支持情況主要是說,比如我們最常用的群組選擇器在時才被支持,并且還支持了很多我們沒有想到的選擇器,如子元素選擇器,屬性選擇器,了解后你會發現還是挺了不起的。 前言 上一篇系列文章整理了CSS選擇器的基礎使用方法,因為內容較多且細致,寫了很多DEMO,目前將它整理成適合移動端瀏覽器的CSS選擇器的參考手冊,方便學習CSS的人參考使...
閱讀 1661·2021-09-26 09:55
閱讀 5277·2021-09-22 15:40
閱讀 2021·2019-08-30 15:53
閱讀 1504·2019-08-30 11:15
閱讀 1723·2019-08-29 15:41
閱讀 1878·2019-08-28 18:13
閱讀 3153·2019-08-26 12:00
閱讀 1677·2019-08-26 10:30