中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

高效編寫CSS代碼的建議有哪些

這篇文章將為大家詳細(xì)講解有關(guān)高效編寫CSS代碼的建議有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

站在用戶的角度思考問題,與客戶深入溝通,找到吳中網(wǎng)站設(shè)計與吳中網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋吳中地區(qū)。

1. 基本原則

1.1 把CSS放在HTML頁面頭部

由于瀏覽器需要在所有的樣式表加載完成后才能開始渲染頁面,樣式表加載完成之前頁面會一直顯示空白,因此需要將樣式表放在頭部。

@import 相當(dāng)于把 標(biāo)簽放在頁面的底部,因此從優(yōu)化性能的角度考慮,應(yīng)避免使用 @import。

1.2 避免使用 CSS Expressions

Expression 只有 IE 支持,而且他的執(zhí)行比大多數(shù)人想象的要頻繁的多。不僅頁面渲染和改變大小 (resize) 時會執(zhí)行,頁面滾動 (scroll) 時也會執(zhí)行,甚至連鼠標(biāo)在頁面上滑動時都會執(zhí)行。在 expression 里面加上一個計數(shù)器就會知道,expression 的執(zhí)行上相當(dāng)頻繁的。鼠標(biāo)的滾動很容易就會使 expression 的執(zhí)行次數(shù)超過 10000。

1.3 CSS簡寫

1.3.1 16進(jìn)制顏色值簡寫

CSS 

  1. /* Not recommended */  

  2. color: #eebbcc;   

  3.   

  4. /* Recommended */  

  5. color: #ebc;     

1.3.2 屬性值簡寫

CSS 

  1. margin-top: 2px;   

  2.  margin-right: 5px;   

  3.  margin-bottom: 2em;   

  4.  margin-left: 15px;     ----->>     margin: 2px 5px 2em 15px;    

  5.   

  6.  border-width: 1px;   

  7.  border-style: solid;   

  8.  border-color: #000     ----->>     border: 1px solid #000    

  9.   

  10.  font-style: italic;   

  11.  font-variant: small-caps;   

  12.  font-weight: bold;   

  13.  font-size: 1em;   

  14.  line-height: 140%;   

  15.  font-family: sans-serif;  ----->>  font: italic small-caps bold 1em 140% sans-serief    

  16.   

  17.  background-color: #f00;   

  18.  background-image: url(background.gif);   

  19.  background-repeat: no-repeat;   

  20.  background-attachment: fixed;   

  21.  background-position: 0 0;   ----->>background: #f00 url(background.gif) no-repeat fixed 0 0    

  22.   

  23.  list-style-type: square;   

  24.  list-style-position: inside;   

  25.  list-style-image: url(image.gif)  ----->> list-style: square inside url(image.gif)   

1.4 盡量抽取相似部分

CSS 

  1. .class1{position: absolute; left: 20px; top: 30px;}   

  2. .class2{position: absolute; left: 20px; top: 30px;}   

  3. .class3{position: absolute; left: 20px; top: 30px;}   

  4. .class4{position: absolute; left: 20px; top: 30px;}   

  5. .class5{position: absolute; left: 20px; top: 30px;}   

  6. .class6{position: absolute; left: 20px; top: 30px;}    

  7.   

  8.  -------------------->>>>>>>    

  9.   

  10.  .class1 .class2 .class3 .class4 .class5 .class6{   

  11.         Position: absolute; left: 20px; top: 20px;   

  12.  }  

  2. 關(guān)鍵要點(diǎn)

2.1 只使用小寫

CSS 

  1. <!-- Not recommended -->   

  2. <A HREF="/">Home</A>   

  3.   

  4. <!-- Recommended -->   

  5. <img src="google.png" alt="Google">  

2.2 不要有多余的空格(劃線處)

CSS 

  1. <!-- Not recommended -->   

  2. <p>What?_   

  3.   

  4. <!-- Recommended -->   

  5. <p>Yes please.  

2.3 使用utf8編碼

html中:

XML/HTML 

  1. <meta charset="utf-8">   

css中:

CSS 

  1. @charset "utf-8";  

2.4 使用html5文檔類型

XML/HTML 

  1. <!DOCTYPE html>  

2.5 驗(yàn)證HTML與CSS文檔

驗(yàn)證HTML

驗(yàn)證CSS

2.6 使文檔語義化

2.7 多媒體(多終端)兼容

CSS Code

  1. <!-- Not recommended -->   

  2. <img src="spreadsheet.png">   

  3.   

  4. <!-- Recommended -->   

  5. <img src="spreadsheet.png" alt="Spreadsheet screenshot.">  

2.8 不要使用實(shí)體引用

CSS Code

  1. <!-- Not recommended -->   

  2. The currency symbol for the Euro is “&eur;”.   

  3.   

  4. <!-- Recommended -->   

  5. The currency symbol for the Euro is “&euro;”.  

2.9 使用帶有語義的id和class

CSS Code

  1. /* Not recommended: meaningless */  

  2. #yee-1901 {}   

  3.   

  4. /* Not recommended: presentational */  

  5. .button-green {}   

  6. .clear {}   

  7.   

  8. /* Recommended: specific */  

  9. #gallery {}   

  10. #login {}   

  11. .video {}   

  12.   

  13. /* Recommended: generic */  

  14. .aux {}   

  15. .alt {}  

2.10 省略零值的單位

CSS Code

  1. margin: 0;   

  2. padding: 0;  

2.11 省略起始的零

CSS Code

  1. font-size: .8em;  

2.12 盡量避免CSS hacks

嘗試換種解決方案

2.13 為末尾的聲明添加分號

盡管省略末尾分號可以省略一個字節(jié),但是非常不利于團(tuán)隊維護(hù),得不償失

CSS Code

  1. /* Not recommended */  

  2. .test {   

  3.   display: block;   

  4.   height: 100px  

  5. }   

  6.   

  7. /* Recommended */  

  8. .test {   

  9.   display: block;   

  10.   height: 100px;   

  11. }  

2.14 選擇器的效率

瀏覽器是“從右往左”來分析 class 的,對于下面的規(guī)則

CSS Code

  1. #god > li {font-weight: bold}  

瀏覽器會先查找頁面上所有的“l(fā)i”節(jié)點(diǎn),然后再去做進(jìn)一步的判斷:如果它的父節(jié)點(diǎn)的 id 為“god”,則匹配成功。由此可知,CSS 選擇器的匹配遠(yuǎn)比我們想象的要慢的多,CSS 的性能問題不容忽視。

2.15 后代選擇器

CSS Code

  1. #toc li {font-weight: bold}   

這個效率比之前的“child selector”效率更慢,而且要慢很多。瀏覽器先便利所有的“l(fā)i”節(jié)點(diǎn),然后步步上溯其父節(jié)點(diǎn),直到 DOM 結(jié)構(gòu)的根節(jié)點(diǎn)(document),如果有某個節(jié)點(diǎn)的 id 為“toc”,則匹配成功,否則繼續(xù)查找下一個“l(fā)i”節(jié)點(diǎn)。

2.16 盡量避免全局選擇器

CSS Code

  1. [hidden="true"] { ... } /* A universal rule */    

這里的匹配規(guī)則很明顯:查找頁面上的所有節(jié)點(diǎn),如果有節(jié)點(diǎn)存在“hidden”屬性,并且其屬性值為“true”,則匹配成功。這是最耗時耗力的匹配,頁面上的所有節(jié)點(diǎn)都需要進(jìn)行匹配運(yùn)算,這種規(guī)則應(yīng)盡量避免。

是用星號也一樣

CSS Code

  1. #god li *  

先找到頁面上的所有元素,再匹配祖先中包含li的元素,然后在這些元素中再查找父元素的id為god的元素。

因此,對于全局選擇器,只建議一種用法:

CSS Code

  1. * { margin: 0; padding: 0; /* etc. */ }  

2.17 避免tag+id或者class+id

CSS Code

  1. button#goButton {...};----->>#goButton   

  2. .fundation#testIcon {...};----->>#testIcon   

2.18 關(guān)于tag+class

CSS Code

  1. button.indented {...}----->>.button-indented {...}   

程序員們經(jīng)常會給某個 Class 前面加上標(biāo)簽名稱(Tag Name),以更精確且快速的定位該節(jié)點(diǎn),但是這樣往往效率更差。因?yàn)轫撁嫔系?class 在全局范圍內(nèi)來講應(yīng)該是唯一的,用唯一的 Class 名稱來定位一個節(jié)點(diǎn)往往比組合定位更加快捷。事實(shí)上,這種做法也可以避免由于開發(fā)修改頁面元素的類型(Tag)而導(dǎo)致的樣式失效的情況,做到樣式與元素的分離,兩者獨(dú)立維護(hù)。

2.19 盡量減少規(guī)則數(shù)量

可以考慮將層級關(guān)系寫到一個class中,不過在層級變動時就比較麻煩了

CSS Code

  1. Span[mailfolder="true"] > table > tr > td.columnClass {...}    

  2.   

  3. ------------------->>>>>>>    

  4.   

  5. .span-mailfolder-tbl-tdCol {...}   

2.20 避免過長的class命名

可以考慮縮寫

CSS 

  1. ocHeroImage   

  2. ocEmailAddress  

如果覺得難以理解,可以加入連字符或注釋

CSS 

  1. oc-HeroImage   

  2. oc-EmailAddress  

盡管有語義化方面的考慮,但命名還是盡量短一些,只要易于辨認(rèn)即可

CSS 

  1. heroImg   

  2. emailAddr  

2.21 文件名中不應(yīng)有空格

a) 有空格的文件名會被Google當(dāng)成兩個關(guān)鍵字,可能帶來更多的搜索結(jié)果,引來更多流量,是好事

b) 有空格意味著不能省略引號,多了兩個字節(jié)

c) 空格會被瀏覽器自動轉(zhuǎn)換為%20,老的瀏覽器可能不支持,如果將%20硬編碼到URL中則每個實(shí)例中都多了兩個字符

CSS Code復(fù)制內(nèi)容到剪貼板

  1. input {background: url("/images/shadow background.gif");}  

2.22 省略URI的引號

CSS 

  1. @import url(//www.google.com/css/go.css);  

2.23 盡量避免后代選擇器

CSS 

  1. treehead treerow treecell {...} ----->> treehead > treerow > treecell {...}   

Descendant 選擇器是耗時相對高的選擇器,通常來講,它在 CSS 里的使用應(yīng)該是盡量避免的,如果能用 child 選擇器替代就應(yīng)該盡量這樣去做。

2.24 充分利用繼承機(jī)制

 Color
 font
 letter-spacing
 line-height
 list-style
 text-align
 text-indent
 text-transform
 white-space
 word-spacing

CSS

  1. #bookmark  > .menu-left {list-style-image: url(blah)}    

  2.   

  3. ------------>>>>>>>>    

  4.   

  5. #bookmark  {list-style-image: url(blah)}   

2.25 發(fā)布之前一定要進(jìn)行壓縮

可使用YUI Compressor或類似軟件進(jìn)行壓縮后再發(fā)布。

  3. 高級技巧

3.1 省略嵌入資源的協(xié)議

即可避免混合內(nèi)容問題(mixed content issues)也可以縮減文件大小

CSS 

  1. <!-- Not recommended -->   

  2. <script src="http://www.google.com/js/gweb/analytics/autotrack.js"></script>   

  3.   

  4. <!-- Recommended -->   

  5.   

  6. <script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>   

  7. /* Not recommended */  

  8. .example {   

  9.   background: url(http://www.google.com/images/example);   

  10. }   

  11.   

  12. /* Recommended */  

  13. .example {   

  14.   background: url(//www.google.com/images/example);   

  15. }  

3.2 省略可選的標(biāo)簽

HTML5規(guī)范中指定了一些可以省略的標(biāo)簽,可以縮減文件大小

XML/HTML 

  1. <!-- Not recommended -->  

  2. <!DOCTYPE html>  

  3. <html>  

  4.   <head>  

  5.     <title>Spending money, spending bytes</title>  

  6.   </head>  

  7.   <body>  

  8.     <p>Sic.</p>  

  9.   </body>  

  10. </html>  

  11.   

  12. <!-- Recommended -->  

  13. <!DOCTYPE html>  

  14. <title>Saving money, saving bytes</title>  

  15. <p>Qed.  

3.3 文件結(jié)構(gòu)

由于圖像等資源一般只有CSS文件使用,故可將圖像文件夾放到CSS文件同級目錄,這樣就可使用相對路徑,節(jié)省字節(jié)數(shù)

CSS 

  1. input {background: url("images/shadow background.gif");}  

3.4 文件夾命名

通常文件夾會被命名為其所代表的資源的復(fù)數(shù)形式

images
assets
fonts

其實(shí)大可不必,使用單數(shù)形式可以節(jié)省許多字節(jié),尤其是當(dāng)每個項目的結(jié)構(gòu)都類似時

img
asset
font

對于下面一段包含58字節(jié)的代碼:

CSS 

  1. input {background: url("/images/shadow background.gif");}  

優(yōu)化后變?yōu)?2字節(jié),即10%的壓縮:

CSS

  1. input {background: url(img/shadow-background.gif);}  

如果在使用縮寫,則可進(jìn)一步縮減:

input {background: url(img/shadow-bg.gif);}

如果一個項目有幾百行這樣的代碼,那么就會節(jié)省幾百字節(jié)了。如果站點(diǎn)訪問量超大,則可節(jié)省數(shù)目客觀的帶寬資源。

3.5 末尾聲明的分號

前面提過,去掉末尾聲明的分號可以節(jié)省字節(jié),但不利于維護(hù)??梢钥紤]在壓縮發(fā)布階段去掉。

CSS板

  1. .clear {clear:both;}   

  2.   

  3. .clear {clear:both}  

3.6 背景色簡寫

背景色簡寫也可節(jié)省字節(jié),但要慎用,因?yàn)槭÷缘舻哪J(rèn)屬性會覆蓋前面的屬性。

3.7 濾鏡簡寫

CSS 

  1. selector {   

  2.         -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)";   

  3.         filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=65);   

  4. }  

filter的版本是IE8以下的,&ndash;ms-filter的版本是IE9以上的,YUI會將其壓縮為:

CSS 

  1. selector {   

  2.         -ms-filter:"alpha(opacity=65)";   

  3.         filter:alpha(opacity=65);   

  4. }   

由于YUI的廣泛使用極其社區(qū)開發(fā)著的強(qiáng)大力量,說明這種寫法已經(jīng)是經(jīng)過深度測試的寫法,可以放心使用。

3.8 Gzip壓縮與CSS書寫

Goolge建議按照字母順序書寫CSS規(guī)則,方便維護(hù)。其他公司也有自己的規(guī)范。從Gzip壓縮角度,只要整個文檔中的書寫順序保持一致即可,可以提高Gzip壓縮比率。

background: fuchsia;
border: 1px solid;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
color: black;
text-align: center;
text-indent: 2em;

3.9 更少的請求比更小的尺寸重要

文件可以適當(dāng)?shù)暮喜?,只保留基本的層級即?/p>

XML/HTML 

  1. <link rel="stylesheet" href="http://css.somedomain.com/reset.css" type="text/css" />  

  2. <link rel="stylesheet" href="http://css.somedomain.com/global.css" type="text/css" />  

  3. <link rel="stylesheet" href="http://css.somedomain.com/home.css" type="text/css" />  

關(guān)于高效編寫CSS代碼的建議有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

文章名稱:高效編寫CSS代碼的建議有哪些
文章轉(zhuǎn)載:http://www.rwnh.cn/article8/jipoip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站用戶體驗(yàn)、標(biāo)簽優(yōu)化、軟件開發(fā)、定制開發(fā)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
姚安县| 赤壁市| 普陀区| 淮南市| 禹州市| 昆明市| 桃江县| 巨野县| 明光市| 滨海县| 达州市| 桃江县| 察雅县| 星座| 竹溪县| 同仁县| 舒城县| 汝南县| 邢台市| 灌云县| 平原县| 富蕴县| 府谷县| 颍上县| 云龙县| 包头市| 栾川县| 喀喇沁旗| 云安县| 巍山| 如东县| 盱眙县| 新竹县| 富锦市| 崇阳县| 宜兴市| 台湾省| 河津市| 义马市| 镇赉县| 赤水市|