摘要:選擇器的最后一部分,也就是選擇器的最右邊在這個例子中就是部分部分被稱為關鍵選擇器,它將決定你的選擇器的效率如何是高還是低。因為最右邊的關鍵選擇器是最具體的,也符合上述的選擇器優先級順序。
贊助我以寫出更好的文章
如果您覺得文章對您有幫助,可以逐個點擊以下鏈接,類似于Google ads,不需要您付出任何費用,每天都可以來點一次噢,費用將由廣告商承擔,give me a cup of coffee?
https://app.codesponsor.io/li...
https://app.codesponsor.io/li...
https://app.codesponsor.io/li...
https://app.codesponsor.io/li...
https://app.codesponsor.io/li...
我們都知道,CSS具有疊加性(同一個元素被多條樣式規則指定),繼承性(后代元素會繼承前輩元素的一些樣式和屬性)和優先級 (由于CSS的疊加性和繼承性,將產生優先級,這指的是哪條樣式規則會最終作用于指定的元素,他只遵循一條規則,指定的越具體,優先級越高)
由上可知,選擇器指定的越具體,那么他的優先級就越高,
在這里,我們來總結一下css的選擇器:
一、基本選擇器(標簽選擇器、通用選擇器、類和ID選擇器)
選擇器 | 描述 | CSS版本 |
---|---|---|
E | 標簽選擇器,匹配所有使用E標簽的元素 | |
* | 通用元素選擇器,匹配任何元素 | |
.info | class選擇器,匹配所有class屬性中包含info的元素 | |
#footer | id選擇器,匹配所有id屬性等于footer的元素 |
二、多元素的組合選擇器(標簽選擇器[群組選擇器]、后代選擇器、子元素選擇器、相鄰選擇器)
選擇器 | 描述 | CSS版本 |
---|---|---|
E,F | 多元素選擇器,同時匹配所有E元素或F元素,E和F之間用逗號隔開 | |
E F | 包含選擇符,匹配所有被E元素包含的F元素 | |
E>F | 子元素選擇器,匹配所有E元素的兒子元素F | |
E+F | 毗鄰元素選擇器,匹配所有緊隨E元素之后的同級元素F | |
E~F | 匹配任何E標簽之后的同級F標簽 |
三、屬性選擇器
選擇器 | 描述 | CSS版本 |
---|---|---|
E[attribute] | 匹配所有具有attribute屬性的E元素,不考慮它的值。(注意:E在此處可以省略,比如“[cheacked]”。以下同。) | 2.1 |
E[attribute=value] | 匹配所有attribute屬性等于“value”的E元素 | 2.1 |
E[attribute~=value] | 匹配所有attribute屬性具有多個空格分隔的值、其中一個值等于“value”的E元素 | 2.1 |
E[attribute^=value] | 匹配任何E標簽之后的同級F標簽 | 2.1 |
E[attribute$=value] | 匹配所有attribute屬性值包含有“value”的E元素 | 3 |
E[attribute*=value] | 匹配所有attribute屬性值是以"value"結束的E元素 | 3 |
四、偽類選擇器
五、偽元素選擇器
選擇器 | 描述 | CSS版本 |
---|---|---|
E:first-line | 匹配所有E標簽內的第一行 | 2.1 |
E:first-letter | 匹配所有E標簽內的第一個字母 | 2.1 |
E:before | 在E標簽之前插入生成的內容 | 2.1 |
E:after | 在E標簽之后插入生成的內容 | 2.1 |
在這里,我們需要知道的是瀏覽器是如何讀取選擇器的。Chris Coyier曾在《Efficiently Rendering CSS》一文中說過“瀏覽器讀取你的選擇器,遵循的原則是從選擇器的右邊到左邊讀取。換句話說,瀏覽器讀取選擇器的順序是由右到左進行”。
選擇器的最后一部分,也就是選擇器的最右邊(在這個例子中就是a[title]部分)部分被稱為“關鍵選擇器”,它將決定你的選擇器的效率如何?是高還是低。
那么如何讓關鍵選擇器更有效,性能化更高呢?其實很簡單,主要把握一點“越具體的關鍵選擇器,其性能越高”
選擇器有一個固有的效率,我們來看Steve Souders給排的一個順序:
id選擇器(#myid) 類選擇器(.myclassname) 標簽選擇器(div,h1,p) 相鄰選擇器(h1+p) 子選擇器(ul > li) 后代選擇器(li a) 通配符選擇器(*) 屬性選擇器(a[rel="external"]) 偽類選擇器(a:hover,li:nth-child)
上面九種選擇器的效率是從高到低排下來的,基中ID選擇器的效率是最高,而偽類選擇器的效率則是最低的。
我們來對比一下這幾個實例,看看誰的效率是最高的:
1. #myId span
2. span #myId
由上面的例子,我們可以知道,下面的效率要比上面的高。因為最右邊的關鍵選擇器是最具體的,也符合上述的選擇器優先級順序。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/110923.html
摘要:對應多種語法規則可以為指定樣式。渲染頁面繪制到屏幕后,頁面結構的改變也有可能導致渲染樹重新計算,其中重排和重繪是最耗時的部分。 寫了這么多class,color,background,display...; 也許有時候會疑惑,怎么就顯示在頁面上,改變元素的樣式。 本文簡明介紹整個解析,匹配,渲染過程 css 描述 css 是Cascading Style Sheets的簡寫,是一種樣式...
摘要:也有的元素被完全無視,比如的元素。對于每個元素,必須在所有中找到符合的并將對應的規則進行合并。這樣做是為了減少無效匹配次數,從而匹配快性能更優。識別屬性值,創建對象,并將對象存入解釋器堆棧。數組中的每一項紀錄了這個的,的值,權重層疊規則。 作為前端,我們每天都在與CSS打交道,那么CSS的原理是什么呢? 一、瀏覽器渲染 開篇,我們還是不厭其煩的回顧一下瀏覽器的渲染過程,先上圖:show...
摘要:也有的元素被完全無視,比如的元素。對于每個元素,必須在所有中找到符合的并將對應的規則進行合并。這樣做是為了減少無效匹配次數,從而匹配快性能更優。識別屬性值,創建對象,并將對象存入解釋器堆棧。數組中的每一項紀錄了這個的,的值,權重層疊規則。 作為前端,我們每天都在與CSS打交道,那么CSS的原理是什么呢? 一、瀏覽器渲染 開篇,我們還是不厭其煩的回顧一下瀏覽器的渲染過程,先上圖:show...
摘要:類用于寬度,占據全部視口的容器。通過行在水平方向創建一組列。通過為列設置屬性,從而創建列與列之間的間隔。 上次課內容:什么JQ : write less do more 寫更少的代碼,做更多的事情 javascript函數庫 基本選擇器: ? ID選擇器: #ID名稱 ? 類選擇器: .類名 ? 元素選擇器: 元素的名稱 ? 通配符選擇器: * 找出頁面上...
摘要:類用于寬度,占據全部視口的容器。通過行在水平方向創建一組列。通過為列設置屬性,從而創建列與列之間的間隔。 上次課內容:什么JQ : write less do more 寫更少的代碼,做更多的事情 javascript函數庫 基本選擇器: ? ID選擇器: #ID名稱 ? 類選擇器: .類名 ? 元素選擇器: 元素的名稱 ? 通配符選擇器: * 找出頁面上...
閱讀 2112·2023-04-26 00:41
閱讀 1142·2021-09-24 10:34
閱讀 3573·2021-09-23 11:21
閱讀 4031·2021-09-22 15:06
閱讀 1557·2019-08-30 15:55
閱讀 898·2019-08-30 15:54
閱讀 1829·2019-08-30 15:48
閱讀 550·2019-08-29 13:58