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

CSS代碼高效編寫規范

開發 前端
CSS代碼簡潔實用,不同的人在CSS書寫風格上稍有不同,這里向大家描述一下實現高效整潔的CSS代碼原則,相信你一定會感興趣的。

本文和大家重點討論一下效的CSS代碼編寫規范,比如使用Reset但并非全局Reset,良好的命名習慣,使用多重選擇器,保持CSS的可讀性等內容。

一些高效的CSS代碼編寫規范

CSS學起來并不難,但在大型項目中,就變得難以管理,特別是不同的人在CSS書寫風格上稍有不同,團隊上就更加難以溝通,為此總結了一些如何實現高效整潔的CSS代碼原則:

◆使用Reset但并非全局Reset

不同瀏覽器元素的默認屬性有所不同,使用Reset可重置瀏覽器元素的一些默認屬性,以達到瀏覽器的兼容。但需要注意的是,請不要使用全局Reset:

viewsourceprint?

  1. 1*{margin:0;padding:0;}  
  2.  

這不僅僅因為它是緩慢和低效率的方法,而且還會導致一些不必要的元素也重置了外邊距和內邊距。在此建議參考YUIReset和EricMeyer的做法。我跟EricMeyer的觀點相同,Reset并不是一成不變的,具體還需要根據項目的不同需求做適當的修改,以達到瀏覽器的兼容和操作上的便利性。我使用的Reset如下:

viewsourceprint?

  1. 01/**清除內外邊距**/  
  2.  
  3. 02body,h1,h2,h3,h4,h5,h6,hr,p,  
  4.  
  5. 03blockquote,/*structuralelements結構元素*/  
  6.  
  7. 04dl,dt,dd,ul,ol,li,/*listelements列表元素*/  
  8.  
  9. 05pre,/*textformattingelements文本格式元素*/  
  10.  
  11. 06form,fieldset,legend,button,input,textarea,/*formelements表單元素*/  
  12.  
  13. 07th,td,/*tableelements表格元素*/  
  14.  
  15. 08img/*imgelements圖片元素*/{  
  16.  
  17. 09border:mediumnone;  
  18.  
  19. 10margin:0;  
  20.  
  21. 11padding:0;  
  22.  
  23. 12}  
  24.  
  25. 13/**設置默認字體**/  
  26.  
  27. 14body,button,input,select,textarea{  
  28.  
  29. 15font:12px/1.5'宋體',tahoma,Srial,helvetica,sans-serif;  
  30.  
  31. 16}  
  32.  
  33. 17h1,h2,h3,h4,h5,h6{font-size:100%;}  
  34.  
  35. 18em{font-style:normal;}  
  36.  
  37. 19/**重置列表元素**/  
  38.  
  39. 20ul,ol{list-style:none;}  
  40.  
  41. 21/**重置超鏈接元素**/  
  42.  
  43. 22a{text-decoration:none;color:#333;}  
  44.  
  45. 23a:hover{text-decoration:underline;color:#F40;}  
  46.  
  47. 24/**重置圖片元素**/  
  48.  
  49. 25img{border:0px;}  
  50.  
  51. 26/**重置表格元素**/  
  52.  
  53. 27table{border-collapse:collapse;border-spacing:0;}  
  54.  

 

◆良好的命名習慣

無疑亂七八糟或者無語義命名的代碼,誰看了都會抓狂。就像這樣的代碼:

viewsourceprint?

  1. 1.aaabb{margin:2px;color:red;}  
  2.  

我想即使是初學者,也不至于會在實際項目中如此命名一個class,但有沒有想過這樣的代碼同樣是很有問題的:

viewsourceprint?

  1. 1<h1>Mynameis<spanclassspanclass="redblod"> 
  2.  
  3. NowaMagicspan>h1> 
  4.  

問題在于如果你需要把所有原本紅色的字體改成藍色,那修改后就樣式就會變成:

viewsourceprint?

  1. 1.red{color:bule;}  
  2.  

這樣的命名就會很讓人費解,同樣的命名為.leftBar的側邊欄如果需要修改成右側邊欄也會很麻煩。所以,請不要使用元素的特性(顏色,位置,大小等)來命名一個class或id,您可以選擇意義的命名如:#navigation{...},.sidebar{...},.postwrap{...}

這樣,無論你如何修改定義這些class或id的樣式,都不影響它跟HTML元素間的聯系。

另外還有一種情況,一些固定的樣式,定義后就不會修改的了,那你命名時就不用擔憂剛剛說的那種情況,如:

viewsourceprint?

  1. 1.alignleft{float:left;margin-right:20px;}  
  2.  
  3. 2.alignright{float:right;text-align:right;margin-left:20px;}  
  4.  
  5. 3.clear{clear:both;text-indent:-9999px;}  
  6.  

那么對于這樣一個段落

viewsourceprint?

  1. 1<pclasspclass="alignleft">我是一個段落!p> 
  2.  

如果需要把這個段落由原先的左對齊修改為右對齊,那么只需要修改它的className就為alignright就可以了。#p#

◆代碼縮寫

CSS代碼縮寫可以提高你寫代碼的速度,精簡你的代碼量。在CSS里面有不少可以縮寫的屬性,包括margin,padding,border,font,background和顏色值等,如果您學會了代碼縮寫,原本這樣的代碼:

viewsourceprint?

  1. 1li{  
  2.  
  3. 2font-family:Arial,Helvetica,sans-serif;  
  4.  
  5. 3font-size:1.2em;  
  6.  
  7. 4line-height:1.4em;  
  8.  
  9. 5padding-top:5px;  
  10.  
  11. 6padding-bottom:10px;  
  12.  
  13. 7padding-left:5px;  
  14.  
  15. 8}  
  16.  

 

就可以縮寫為:

viewsourceprint?

  1. 1li{  
  2.  
  3. 2font:1.2em/1.4emArial,Helvetica,sans-serif;  
  4.  
  5. 3padding:5px010px5px;  
  6.  
  7. 4}  
  8.  

 

如果您想更了解這些屬性要怎么縮寫,可以參考《常用CSS縮寫語法總結》或者下載CSS-Shorthand-Cheat-Sheet.pdf。

◆利用CSS繼承

如果頁面中父元素的多個子元素使用相同的樣式,那***把他們相同的樣式定義在其父元素上,讓它們繼承這些CSS樣式。這樣你可以很好的維護你的代碼,并且還可以減少代碼量。那么本來這樣的代碼:

viewsourceprint?

  1. 1#containerli{font-family:Georgia,serif;}  
  2.  
  3. 2#containerp{font-family:Georgia,serif;}  
  4.  
  5. 3#containerh1{font-family:Georgia,serif;}  
  6.  

 

就可以簡寫成:

viewsourceprint?

  1. 1#container{font-family:Georgia,serif;}  
  2.  

#p#◆使用多重選擇器

你可以合并多個CSS選擇器為一個,如果他們有共同的樣式的話。這樣做不但代碼簡潔且可為你節省時間和空間。如:

viewsourceprint?

  1. 1h1{font-family:Arial,Helvetica,sans-serif;font-weight:normal;}  
  2.  
  3. 2h2{font-family:Arial,Helvetica,sans-serif;font-weight:normal;}  
  4.  
  5. 3h3{font-family:Arial,Helvetica,sans-serif;font-weight:normal;}  
  6.  

 

可以合并為

viewsourceprint?

  1. 1h1,h2,h3{font-family:Arial,Helvetica,sans-serif;font-weight:normal;}  
  2.  

◆適當的代碼注釋

代碼注釋可以讓別人更容易讀懂你的代碼,且合理的組織代碼注釋,可使得結構更加清晰。你可以選擇做的樣式表的開始添加目錄:

viewsourceprint?

  1. 1/*------------------------------------  
  2.  
  3. 21.Reset  
  4.  
  5. 32.Header  
  6.  
  7. 43.Content  
  8.  
  9. 54.SideBar  
  10.  
  11. 65.Footer  
  12.  
  13. 7-----------------------------------*/  
  14.  

 

如此你代碼的結構就一目了然,你可以容易的查找和修改代碼。

而對于代碼的主內容,也應適當的加以劃分,甚至在有必要的地方在對代碼加以注釋說明,這樣也有利于團隊開發:

viewsourceprint?

  1. 01/***Header***/  
  2.  
  3. 02#header{height:145px;position:relative;}  
  4.  
  5. 03#headerh1{width:324px;margin:45px0020px;float:left;height:72px;}  
  6.  
  7. 04  
  8.  
  9. 05/***Content***/  
  10.  
  11. 06#content{background:#fff;width:650px;float:left;  
  12. min-height:600px;overflow:hidden;}  
  13.  
  14. 07#contenth1{color:#F00}/*設置字體顏色*/  
  15.  
  16. 08#content.posts{overflow:hidden;}  
  17.  
  18. 09#content.recent{margin-bottom:20px;  
  19. border-bottom:1pxsolid#f3f3f3;position:relative;  
  20. overflow:hidden;}  
  21.  
  22. 10  
  23.  
  24. 11/***Footer***/  
  25.  
  26. 12#footer{clear:both;padding:50px5px0;overflow:hidden;}  
  27.  
  28. 13#footerh4{color:#b99d7f;  
  29. font-family:Arial,Helvetica,sans-serif;font-size:1.1em;}  
  30.  

 

◆給你的CSS代碼排序

如果代碼中的屬性都能按照字母排序,那查找修改的時候就能更加快速:

viewsourceprint?

  1. 01/***樣式屬性按字母排序***/  
  2.  
  3. 02div{  
  4.  
  5. 03background-color:#3399cc;  
  6.  
  7. 04color:#666;  
  8.  
  9. 05font:1.2em/1.4emArial,Helvetica,sans-serif;  
  10.  
  11. 06height:300px;  
  12.  
  13. 07margin:10px5px;  
  14.  
  15. 08padding:5px010px5px;  
  16.  
  17. 09width:30%;  
  18.  
  19. 10z-index:10;  
  20.  
  21. 11}  
  22.  

 

#p#◆保持CSS的可讀性

書寫可讀的CSS將會使得更容易查找和修改樣式。對于以下兩種情況,哪種可讀性更高,我想不言而明。

viewsourceprint?

  1. 01/***每個樣式屬性寫一行***/  
  2.  
  3. 02div{  
  4.  
  5. 03background-color:#3399cc;  
  6.  
  7. 04color:#666;  
  8.  
  9. 05font:1.2em/1.4emArial,Helvetica,sans-serif;  
  10.  
  11. 06height:300px;  
  12.  
  13. 07margin:10px5px;  
  14.  
  15. 08padding:5px010px5px;  
  16.  
  17. 09width:30%;  
  18.  
  19. 10z-index:10;  
  20.  
  21. 11}  
  22.  
  23. 12  
  24.  
  25. 13/***所有的樣式屬性寫在同一行***/  
  26.  
  27. 14div{background-color:#3399cc;color:#666;  
  28. font:1.2em/1.4emArial,Helvetica,sans-serif;height:300px;  
  29. margin:10px5px;padding:5px010px5px;width:30%;z-index:10;}  
  30.  

 

當對于一些樣式屬性較少的選擇器,我會寫到一行:

viewsourceprint?

  1. 1/***選擇器屬性少的寫在同一行***/  
  2.  
  3. 2div{background-color:#3399cc;color:#666;}  
  4.  

對于這個規則并非硬性規定,但無論您采用哪種寫法,我的建議是始終保持代碼一致。屬性多的分行寫,屬性少于3個可以寫一行。

◆選擇更優的樣式屬性值

CSS中有些屬性采用不同的屬性值,雖然達到的效果差不多,當性能上卻存在著差異,如:

區別在于border:0把border設為0px,雖然在頁面上看不見,但按border默認值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經占用了內存值。

而border:none把border設為“none”即沒有,瀏覽器解析“none”時將不作出渲染動作,即不會消耗內存值。所以建議使用border:none;

同樣的,display:none隱藏對象瀏覽器不作渲染,不占用內存。而visibility:hidden則會。

#p#

◆使用代替@import

首先,@import不屬于XHTML標簽,也不是Web標準的一部分,它對于較早期的瀏覽器兼容也不高,并且對于網站的性能有某些負面的影響。具體可以參考《高性能網站設計:不要使用@import》。所以,請避免使用@import

◆使用外部樣式表

這個原則始終是一個很好的設計實踐。不單可以更易于維護修改,更重要的是使用外部文件可以提高頁面速度,因為CSS文件都能在瀏覽器中產生緩存。內置在HTML文檔中的CSS則會在每次請求中隨HTML文檔重新下載。所以,在實際應用中,沒有必要把CSS代碼內置在HTML文檔中:

viewsourceprint?

  1. 1<styletypestyletype="text/css"> 
  2.  
  3. 2#container{..}  
  4.  
  5. 3#sidebar{..}  
  6.  
  7. 4style> 

viewsourceprint?

  1. 1<listylelistyle="font-family:Arial,helvetica,sans-serif;color:#666;"> 
  2.  

而是使用導入外部樣式表:

viewsourceprint?

  1. 1<linkrellinkrel="stylesheet"type="text/css"href="css/styles.css"/> 
  2.  

◆避免使用CSS表達式(Expression)

CSS表達式是動態設置CSS屬性的強大(但危險)方法。InternetExplorer從第5個版本開始支持CSS表達式。下面的例子中,使用CSS表達式可以實現隔一個小時切換一次背景顏色:

viewsourceprint?

  1. 1background-color:expression((newDate()).getHours()%  
  2.  
  3. 2?"#B8D4FF":"#F08A00");  
  4.  

如上所示,expression中使用了JavaScript表達式。CSS屬性根據JavaScript表達式的計算結果來設置。

表達式的問題就在于它的計算頻率要比我們想象的多。不僅僅是在頁面顯示和縮放時,就是在頁面滾動、乃至移動鼠標時都會要重新計算一次。給CSS表達式增加一個計數器可以跟蹤表達式的計算頻率。在頁面中隨便移動鼠標都可以輕松達到10000次以上的計算量。

如果必須使用CSS表達式,一定要記住它們要計算成千上萬次并且可能會對你頁面的性能產生影響。所以,在非不得已,請避免使用CSS表達式。

◆代碼壓縮

當你決定把網站項目部署到網絡上,那你就要考慮對CSS進行壓縮,出去注釋和空格,以使得網頁加載得更快。壓縮您的代碼,可以采用一些工具,如YUICompressor利用它可精簡CSS代碼,減少文件大小,以獲得更高的加載速度。
 

【編輯推薦】

  1. 實例解析清除CSS float浮動的三種方法
  2. CSS Sprites樣式生成工具用法詳解
  3. FireFox和IE中CSS兼容技巧匯總
  4. 深入學習CSS匹配原理
  5. 深入剖析Firefox下 margin-top失效原因與解決方案

 

 

責任編輯:佚名 來源: nowamagic.net
相關推薦

2010-09-09 13:59:55

CSS

2010-09-14 13:49:38

CSS代碼

2013-03-11 10:30:56

CSSWeb

2015-01-28 14:30:31

android代碼

2011-12-02 10:19:24

CSS

2011-06-03 15:21:51

CSS

2011-06-03 15:06:30

CSS

2011-11-25 10:35:20

Java

2014-11-10 09:59:08

jQuery

2010-09-10 15:23:54

CSS匹配CSS

2023-02-26 23:23:36

CSS開發Web

2010-01-11 13:19:24

C++代碼

2009-06-23 16:50:24

2011-03-24 13:09:11

數據庫代碼

2014-07-18 14:03:06

Android高效編寫代碼

2010-08-26 15:27:57

CSS

2023-07-06 14:37:05

2020-04-16 21:02:35

前端命名規范html規范

2016-09-07 19:58:47

CSS代碼Web

2017-08-28 14:58:19

CSSFlexbox注釋格式優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色视频网站免费 | 欧美亚洲综合久久 | 欧美网站一区二区 | 亚洲成人三级 | 日韩一区欧美一区 | 日日艹夜夜艹 | 国产午夜精品久久久久免费视高清 | 国产ts人妖系列高潮 | 黑人巨大精品 | 国产日产久久高清欧美一区 | 一区二区中文字幕 | 欧美国产日本一区 | 五月婷婷激情网 | 国产95在线| 夜夜爽99久久国产综合精品女不卡 | 精品日韩在线 | 羞羞免费网站 | www.奇米| 亚洲欧美成人 | 国产亚洲精品久久久久动 | 免费观看www | 欧美日韩亚洲国产综合 | 日本精品久久久久久久 | 国产精品日韩在线观看 | 欧美一区二区三区在线看 | 欧美激情精品久久久久久 | 免费中文字幕日韩欧美 | 欧美成人精品一区二区男人看 | 中文字幕一级毛片视频 | 久久精品国产免费 | 中文字幕在线免费视频 | www日韩高清 | 国产一区二区三区四区五区3d | 亚洲aⅴ| www.av在线 | 久色激情| 日韩成人一区 | 最新免费黄色网址 | 亚洲成人av一区二区 | 欧美videosex性极品hd | 神马久久久久久久久久 |