成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 前端
用了這么多年的CSS,現在才明白CSS的真正匹配原理,不知道你是否也跟我一樣?

看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:

  1. <style>  
  2.   DIV#divBox p span.red{color:red;}  
  3. <style>  
  4. <body>  
  5.   <div id="divBox">  
  6.     <p><span>s1</span></p>  
  7.     <p><span>s2</span></p>  
  8.     <p><span>s3</span></p>  
  9.     <p><span class='red'>s4</span></p>  
  10.   </div>  
  11. </body> 

如果按從左到右查找,哪會先查找到很多不相關的p和span元素。而如果按從右到左的方式進行查找,則首先就查找到的元素。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;}

系列專題:高性能WEB開發應用指南

【編輯推薦】

  1. 高性能WEB開發之Web性能測試工具推薦
  2. 強烈推薦40個優秀的免費CSS工具
  3. 高性能WEB開發之JS、CSS的合并壓縮
  4. 10 個漂亮的CSS 3表單制作教程
  5. 2011年2月8款免費HTML和CSS模板推薦
責任編輯:陳貽新 來源: BearRui的博客
相關推薦

2011-05-12 10:48:49

CSS清理浮動

2010-09-10 15:23:54

CSS匹配CSS

2020-07-24 15:40:51

CSS前端代碼

2024-12-19 09:05:13

Python鏈式調用

2025-02-17 08:50:00

CSS代碼JavaScript

2010-08-31 13:06:45

CSS

2023-03-20 16:18:08

JavascriptCSS前端

2023-11-16 08:55:14

CSS前端

2025-04-29 10:04:41

JavaScripMap代碼

2016-01-13 11:39:52

CSS邊框網站

2010-09-06 09:06:22

CSS

2024-11-11 17:00:27

字典壓縮Python代碼

2025-04-29 02:22:00

Python技巧CLI

2017-10-29 06:50:30

前端開發CSSWeb

2010-08-31 13:32:12

CSS

2011-12-02 10:19:24

CSS

2023-11-06 09:24:14

CSS相對顏色

2019-07-31 10:24:16

JavaScript瀏覽器口袋妖怪

2023-10-29 12:54:16

Doris數據倉庫

2013-03-11 10:30:56

CSSWeb
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一本色道久久综合亚洲精品高清 | 久久成人免费观看 | 欧美日韩国产一区二区三区 | 欧美手机在线 | 天天操天天拍 | 毛片网在线观看 | 黄色免费网站在线看 | 精品综合视频 | 二区av| 久久久久久精 | 99热.com| 免费观看www | 成人久草| 99色在线视频 | 午夜激情在线视频 | 国产精品日韩欧美一区二区三区 | 国产视频在线一区二区 | 国户精品久久久久久久久久久不卡 | 国产一区二区欧美 | 黄色片免费在线观看 | 一区二区中文字幕 | 精品国产欧美一区二区三区成人 | 日本欧美视频 | 91精品久久久久久久久久小网站 | 国产精品亚洲一区二区三区在线 | 精品久久久久久一区二区 | 特级黄一级播放 | 在线欧美a| 久久久久国产一区二区 | 日韩欧美国产精品一区二区 | 91不卡| 久久最新精品视频 | 二区av| 亚洲91精品 | 免费看欧美一级片 | 久久网一区二区三区 | 91动漫在线观看 | 日日夜夜天天 | 久久久免费毛片 | 成人免费视频一区 | 乱码av午夜噜噜噜噜动漫 |