婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 了解CSS的查找匹配原理,讓CSS更簡潔、高效

了解CSS的查找匹配原理,讓CSS更簡潔、高效

熱門標簽:智能語音電銷機器人客戶端 山東電銷機器人軟件 常州電話外呼系統招商 洛陽防封卡外呼系統廠家 南通電銷外呼系統軟件 廣州防封電銷機器人廠家 申請400電話移動 上海400電話辦理到易號網 成都企業外呼系統
看1個簡單的CSS:

DIV#divBox p span.red{color:red;},按習慣我們對這個CSS 的理解是,瀏覽器先查找id為divBox的DIV元素,當找到后,再找其下的所有p元素,然后再查找所有span元素,當發現有span的class為red的時候,就應用該style。多么簡單易懂的原理,可是這個理解卻是完完全全相反、錯誤的。


匹配原理:

瀏覽器CSS匹配不是從左到右進行查找,而是從右到左進行查找。比如之前說的 DIV#divBox p span.red{color:red;},瀏覽器的查找順序如下:

  先查找html中所有class='red'的span元素,找到后,再查找其父輩元素中是否有p元素,再判斷p的父元素中是否有id為divBox的div元素,如果都存在則匹配上。

瀏覽器從右到左進行查找的好處是為了盡早過濾掉一些無關的樣式規則和元素。比如如下html和css:

復制代碼 代碼如下:

style>
DIV#divBox p span.red{color:red;}
style>
body>
div id="divBox">
p>span>s1/span>/p>
p>span>s2/span>/p>
p>span>s3/span>/p>
p>span class='red'>s4/span>/p>
/div>
/body>

如果按從左到右查找,哪會先查找到很多不相關的p和span元素。而如果按從右到左的方式進行查找,則首先就查找到span class='red'>的元素。firefox稱這種查找方式為key selector(關鍵字查詢),所謂的關鍵字就是樣式規則中最后(最右邊)的規則,上面的key就是span.red。


簡潔、高效的CSS:
所謂高效的CSS就是讓瀏覽器在查找style匹配的元素的時候盡量進行少的查找,下面列出一些我們常見的寫CSS犯一些低效錯誤(也是我以前常常犯的錯誤,還老以為這樣寫才是高效的):

1.不要在ID選擇器前使用標簽名
一般寫法:DIV#divBox
更好寫法:#divBox
解釋: 因為ID選擇器是唯一的,加上div反而增加不必要的匹配。

2.不要再class選擇器前使用標簽名
一般寫法:span.red
更好寫法:.red
解釋: 同第一條,但如果你定義了多個.red,而且在不同的元素下是樣式不一樣,則不能去掉,比如你css文件中定義如下:
p.red{color:red;}
span.red{color:#ff00ff}
如果是這樣定義的就不要去掉,去掉后就會混淆,不過建議最好不要這樣寫
3.盡量少使用層級關系
一般寫法:#divBox p .red{color:red;}
更好寫法:.red{..}

4.使用class代替層級關系
一般寫法:#divBox ul li a{display:block;}
更好寫法:.block{display:block;}

PS:看有些同學對從右到左的理論保持懷疑,下面貼出firefox和google的2篇相關css解釋的文章,供大家參考

mozilla firefox:https://developer.mozilla.org/en/Writing_Efficient_CSS

google page-speed:http://code.google.com/intl/zh-CN/speed/page-speed/docs/rendering.html
您可能感興趣的文章:
  • WEB高性能開發之瘋狂的HTML壓縮
  • web高性能開發系列隨筆 BearRui(AK-47)版
  • 高性能WEB開發 flush讓頁面分塊,逐步呈現 flush讓頁面分塊,逐步呈現
  • 高性能WEB開發 頁面呈現、重繪、回流。
  • 高性能WEB開發 JS、CSS的合并、壓縮、緩存管理
  • 高性能WEB開發(5) 減少請求,響應的數據量
  • 高性能WEB開發 為什么要減少請求數,如何減少請求數!
  • 高性能web開發 如何加載JS,JS應該放在什么位置?
  • 高性能WEB開發 圖片壓縮篇
  • 高性能WEB開發 web性能測試工具推薦
  • 高性能WEB開發 nginx HTTP服務器篇
  • 編寫高性能的JavaScript 腳本的加載與執行

標簽:萊蕪 邵陽 貴州 滄州 鶴壁 混顯 賀州 廣安

巨人網絡通訊聲明:本文標題《了解CSS的查找匹配原理,讓CSS更簡潔、高效》,本文關鍵詞  了解,CSS,的,查找,匹配,原理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《了解CSS的查找匹配原理,讓CSS更簡潔、高效》相關的同類信息!
  • 本頁收集關于了解CSS的查找匹配原理,讓CSS更簡潔、高效的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 西峡县| 四子王旗| 崇州市| 仁怀市| 加查县| 江津市| 尉氏县| 晋州市| 凉城县| 敖汉旗| 鹿泉市| 天长市| 城固县| 文安县| 通州市| 炎陵县| 隆安县| 泽州县| 广东省| 甘谷县| 章丘市| 恭城| 信丰县| 凤山县| 汝城县| 鲁甸县| 嫩江县| 司法| 菏泽市| 宜阳县| 黔西县| 蓝山县| 独山县| 平利县| 承德市| 紫云| 呼图壁县| 宜州市| 洞头县| 苗栗县| 都昌县|