国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

詳解如何編寫高效的 CSS 選擇符

2024-07-11 08:58:45
字體:
供稿:網(wǎng)友

最初寫CSS的時候,覺得很簡單,寫得天馬行空。后來慢慢的發(fā)現(xiàn),沒有規(guī)則的瞎寫,雖然也能實(shí)現(xiàn)效果,但是在實(shí)際開發(fā)中可能會多做無用功或是重復(fù)做功,并且CSS并不高效。于是后期開發(fā)時就特意按照一定的規(guī)則,盡可能的寫出高效的,可復(fù)用的CSS,總結(jié)一下,主要是是以下幾個方面。

首先看一小段 CSS 代碼:

#menus > li { font-size: 14px; }

可能大家都會猜想瀏覽器會使從左到右匹配上面的規(guī)則,我們會想象瀏覽器先找到唯一的 id 為 menus 的元素,然后把樣式應(yīng)用到其直系子元素 li 元素上。這看起來好像還挺高效的。

但是,事實(shí)上,CSS 選擇符是從右到左進(jìn)行匹配的。所以,上面的這條規(guī)則并不高效,瀏覽器必需遍歷頁面上的每個 li 元素并確定其父元素的 id 是否為 menus。

樣式系統(tǒng)從最右邊的選擇符開始向左匹配規(guī)則。只有當(dāng)前選擇符的左邊還有其他的選擇符,樣式系統(tǒng)就會繼續(xù)向左移動,直到找到和規(guī)則匹配的元素,或者因?yàn)椴黄ヅ涠顺觥?/p>

編寫高效的CSS選擇符有以下常用規(guī)則:

一、避免使用通配規(guī)則

除了傳統(tǒng)意義上的通配選擇符之外,我們把相鄰兄弟選擇符、子選擇符、后代選擇符合屬性選擇符都?xì)w納到通配規(guī)則分類下,推薦僅使用 ID、類和標(biāo)簽選擇符。

二、不要限定 ID 選擇符

在頁面中一個指定的ID只能對應(yīng)一個元素,所以沒有必要添加額外的限定符。例如,div#header是沒有必要的,應(yīng)該簡化為#header。

三、不要限定類選擇符

不要用具體的標(biāo)簽限定類選擇符,而是根據(jù)實(shí)際情況對類名進(jìn)行擴(kuò)展。例如,把li.chapter改成.li-chapter,或是.list-chapter更好。

四、讓規(guī)則越具體越好

不要試圖編寫像 ol li a 這樣的長選擇符,最好是創(chuàng)建一個像.list-anchor一樣的類,并把它添加到適當(dāng)?shù)脑厣稀?/p>

五、避免使用后代選擇符

通常處理后代選擇符的開銷時最高的,而使用子選擇符也可以得到想要的結(jié)果,并且更加高效。

六、避免使用標(biāo)簽—子選擇符

如果有像#menus > li > a這樣的基于標(biāo)簽的子選擇符,那么應(yīng)該使用一個類來關(guān)聯(lián)每個標(biāo)簽元素,例如.menus-item。

七、質(zhì)疑子選擇符的所有用途

檢查所有使用子選擇符的地方,然后盡可能用具體的類取代它們。

八、依靠繼承

了解哪些屬性可以通過繼承而來,然后避免對這些屬性重復(fù)指定規(guī)則。例如,對列表元素而不是每個列表元素指定list-style-image。請參考繼承屬性的列表來了解每個元素的可繼承的屬性。

摘自《高性能網(wǎng)站建設(shè)進(jìn)階指南——Web開發(fā)者性能優(yōu)化最佳實(shí)踐》

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涿州市| 稷山县| 临泽县| 伊通| 澄江县| 葵青区| 科技| 油尖旺区| 阿拉尔市| 额济纳旗| 黄石市| 江孜县| 德兴市| 叙永县| 上虞市| 河南省| 上蔡县| 宜春市| 乌兰浩特市| 石景山区| 昔阳县| 灵川县| 霍州市| 平度市| 莱芜市| 九龙县| 枣强县| 荥阳市| 明星| 西乌珠穆沁旗| 渭南市| 增城市| 左贡县| 彭阳县| 依兰县| 静海县| 绩溪县| 太白县| 临西县| 青龙| 报价|