自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

編寫高效整潔CSS代碼基本原則

開發(fā) 前端
CSS布局有很多值得學習的地方,那么如何寫出高效整潔的CSS代碼呢,這里和大家分享一下編寫CSS代碼的基本原則,相信你一定會感興趣。

本文向大家描述一下編寫高效整潔CSS代碼的基本原則,比如不同瀏覽器元素的默認屬性有所不同,使用Reset可重置瀏覽器元素的一些默認屬性,以達到瀏覽器的兼容。但需要注意的是,請不要使用全局Reset。

編寫高效整潔CSS代碼原則

1.使用Reset但并非全局Reset

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

viewsource

  1. print?  
  2. *{margin:0;padding:0;}  
  3.  

  這不僅僅因為它是緩慢和低效率的方法,而且還會導(dǎo)致一些不必要的元素也重置了外邊距和內(nèi)邊距。在此建議參考YUIReset和EricMeyer的做法。我跟EricMeyer的觀點相同,Reset并不是一成不變的,具體還需要根據(jù)項目的不同需求做適當?shù)男薷模赃_到瀏覽器的兼容和操作上的便利性。我使用的Reset如下:

viewsource

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

 #p#2.良好的命名習慣

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

viewsource

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

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

viewsource

  1. print?  
  2. <h1>Mynameis<spanclassspanclass="redblod">Wiky</span></h1> 
  3.  

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

viewsource

  1. print?  
  2. .red{color:bule;}  
  3.  

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

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

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

viewsource

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

  那么對于這樣一個段落

viewsource

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

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

3.代碼縮寫

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

viewsource

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

 就可以縮寫為:

viewsource

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

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

4.利用CSS繼承

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

viewsource

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

 就可以簡寫成:

viewsource

  1. print?  
  2.  
  3. #container{font-family:Georgia,serif;}  
  4.  

5.使用多重選擇器

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

viewsource

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

可以合并為

viewsource

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

#p#6.適當?shù)拇a注釋

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

viewsource

  1. print?  
  2. /*------------------------------------  
  3.  
  4. 1.Reset  
  5.  
  6. 2.Header  
  7.  
  8. 3.Content  
  9.  
  10. 4.SideBar  
  11.  
  12. 5.Footer  
  13.  
  14. -----------------------------------*/  
  15.  

   如此你代碼的結(jié)構(gòu)就一目了然,你可以容易的查找和修改代碼。

  而對于代碼的主內(nèi)容,也應(yīng)適當?shù)募右詣澐?,甚至在有必要的地方在對代碼加以注釋說明,這樣也有利于團隊開發(fā):

viewsource

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

 7.給你的CSS代碼排序

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

viewsource

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

 #p#8.保持CSS的可讀性

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

viewsource

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

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

viewsource

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

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

9.選擇更優(yōu)的樣式屬性值

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

  區(qū)別在于border:0把border設(shè)為0px,雖然在頁面上看不見,但按border默認值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經(jīng)占用了內(nèi)存值。
  而border:none把border設(shè)為“none”即沒有,瀏覽器解析“none”時將不作出渲染動作,即不會消耗內(nèi)存值。所以建議使用border:none;

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

10.使用<link>代替@import

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

11.使用外部樣式表

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

viewsource

  1. print?  
  2. <styletypestyletype="text/css"> 
  3.  
  4. #container{..}  
  5.  
  6. #sidebar{..}  
  7.  
  8. </style> 
  9.  
  10. 或  
  11.  
  12. <listylelistyle="font-family:Arial,helvetica,  
  13. sans-serif;color:#666;"> 
  14.  

 而是使用<link>導(dǎo)入外部樣式表:

viewsource

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

12.避免使用CSS表達式(Expression)

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

viewsource

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

  如上所示,expression中使用了JavaScript表達式。CSS屬性根據(jù)JavaScript表達式的計算結(jié)果來設(shè)置。

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

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

13.代碼壓縮

  當你決定把網(wǎng)站項目部署到網(wǎng)絡(luò)上,那你就要考慮對CSS進行壓縮,出去注釋和空格,以使得網(wǎng)頁加載得更快。壓縮您的代碼,可以采用一些工具,如YUICompressor

利用它可精簡CSS代碼,減少文件大小,以獲得更高的加載速度。

14.總結(jié)

  在本文中,我力圖更詳盡的總結(jié)書寫更高效的CSS代碼的原則,但鑒于本人見識和精力有限,我還是希望這些原則能幫助您更好的書寫和管理您的CSS代碼,不知您又是如何書寫CSS的,是否也有一些想要分享的技巧

詳文參考:http://www.csschina.net/a/jc/css_1010.html

【編輯推薦】

  1. DIV CSS網(wǎng)站布局八個小技巧
  2. JavaScript動態(tài)創(chuàng)建div屬性和樣式
  3. DIV CSS建站對瀏覽器兼容性和注意事項
  4. CSS2.0中page-break-after屬性用法
  5. 解讀DIV CSS網(wǎng)頁布局中CSS無效十個原因
責任編輯:佚名 來源: csschina.net
相關(guān)推薦

2011-12-02 10:19:24

CSS

2011-06-03 15:06:30

CSS

2011-06-03 15:21:51

CSS

2010-09-14 13:49:38

CSS代碼

2010-09-08 13:53:31

CSS

2020-01-08 18:27:53

七項基本原則高效漏洞管理IT

2020-01-09 08:55:45

漏洞漏洞管理VM

2010-09-28 15:07:48

JavaScript

2010-08-12 10:03:21

Flex性能優(yōu)化

2024-04-28 11:32:32

軟件架構(gòu)開發(fā)

2022-10-25 09:50:56

2017-04-17 20:50:50

2021-09-13 10:30:42

C++代碼設(shè)計模式

2011-04-22 16:17:53

電腦維修

2015-06-09 11:08:20

2015-06-04 10:13:56

DCIM運維管理

2012-03-06 09:02:41

軟件開發(fā)

2011-06-16 13:45:14

2018-01-07 00:10:39

數(shù)據(jù)中心運營IT

2010-05-21 11:22:04

點贊
收藏

51CTO技術(shù)棧公眾號