1. 程式人生 > >怎麼提高CSS的複用性

怎麼提高CSS的複用性

在做專案時,能把自己寫的東西帶走,隨時隨地可用在另一個專案中,是做專案最大的收穫。所以提高CSS的複用性非常重要,我們可以自己寫框架。

如果是大型網站,那就需要一個比較好的組織結構,比如這種base.css+common.css+page.css組織方式:

1.base提供最底層的、功能和粒度最小的的通用類樣式,可以被所有頁面引用,力求精簡和通用;
2.common則是樓上提到的模組化元件,即將功能相對獨立的劃分為模組,重複次數多的模組劃分為元件,提取到common層,這一層需要儘可能實現封裝,對可能經常變化的部分提供靈活的介面;
3.page是頁面級別的樣式表,提供各頁面獨有的樣式,可以再根據需求細分如page-index.css,page-connect.css

這樣做的好處是

1.比較利於維護
2.元件複用率高,修改起來比較輕鬆
3.程式碼精簡,減少冗餘。

以下是一段base.css示例。

/*css reset*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin: 0;padding: 0;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption
,cite,code,dfn,em,strong,th,var{font-style: normal;font-weight: normal;} ol,ul{list-style: none;} caption,th{text-align:left;} h1,h2,h3,h4,h5,h6{font-size: 100%;font-weight: normal;} q:before,q:after{content:'';} abbr,acronym{ border:0;} /*文字排版*/ .f12{font-size: 12px;} .f13{font-size: 13px;} .f14{font-size
: 14px
;}
.f16{font-size: 16px;} .fb{font-weight: bold;} .fn{font-weight: normal;} .t2{text-indent: 2em;} .lh150{line-height:150%;} .lh180{line-height:180%;} .lh200{line-height:200%;} .unl{text-decoration: underline;} .no_unl{text-decoration: none;} /*定位*/ .tl{text-align: left;} .tc{text-align: center;} .tr{text-align: right;} .bc{margin-left: auto;margin-right: auto;} .fl{float: left;display:inline;} .fr{float: right;display:inline;} .cb{clear:both;} .cl{clear: left;} .cr{clear: right;} .clearfix:after{content: '.';display:block;height: 0;clear: both;visibility: hidden;} .clearfix{display:inline-block}*html .clearfix{height: 1%}.Clearfix{display: block;} .vm{vertical-align: middle;} .pr{position: relative;} .pa{position: absolute;} abs-right{position: absolute;right: 0;} .zoom{zoom:1;} .hidden{visibility: hidden;} .none{display: none} /*長度高度*/ .w10{width: 10px;} .w20{width: 20px;} .w30{width: 30px;} .w40{width: 40px;} .w50{width: 50px;} .w70{width: 70px;} .w90{width: 90px;} .w100{width: 100px;} .w300{width: 300px;} .w500{width: 500px;} .w600{width: 600px;} .w700{width: 700px;} .w800{width: 800px;} .w{width: 100%;} .h50{height: 50px;} .h100{height: 100px;} .h200{height: 200px;} .h{height: 100%;} /*編劇*/ .m10{margin:10px;} .m15{margin:15px;} .m30{margin:30px;} .mt5{margin-top:5px;} .mt10{margin-top:10px;} .mt15{margin-top:15px;} .mt20{margin-top:20px;} .mt30{margin-top:30px;} .mt50{margin-top:50px;} .mt100{margin-top:100px;} .mb5{margin-bottom: 5px;} .mb10{margin-bottom: 10px;} .mb15{margin-bottom: 15px;} .mb20{margin-bottom: 20px;} .mb30{margin-bottom: 30px;} .mb50{margin-bottom: 50px;} .mb100{margin-bottom: 100px;} .ml5{margin-left: 5px;} .ml10{margin-left: 10px;} .ml15{margin-left: 15px;} .ml20{margin-left: 20px;} .ml30{margin-left: 30px;} .ml50{margin-left: 50px;} .ml100{margin-left: 100px;} .mr5{margin-right: 5px;} .mr10{margin-right:10px;} .mr15{margin-right: 15px;} .mr20{margin-right: 20px;} .mr30{margin-right: 30px;} .mr50{margin-right: 50px;} .mr100{margin-right: 100px;} .p5{padding: 5px;} .p10{padding:10px;} .p15{padding: 15px;} .p20{padding: 20px;} .p30{padding: 30px;} .p50{padding: 50px;} .p100{padding: 100px;} .pt5{padding-top: 5px;} .pt10{padding-top:10px;} .pt15{padding-top: 15px;} .pt20{padding-top: 20px;} .pt30{padding-top: 30px;} .pt50{padding-top: 50px;} .pt100{padding-top: 100px;} .pb5{padding-bottom: 5px;} .pb10{padding-bottom:10px;} .pb15{padding-bottom: 15px;} .pb20{padding-bottom: 20px;} .pb30{padding-bottom: 30px;} .pb50{padding-bottom: 50px;} .pb100{padding-bottom: 100px;} .pl5{padding-left: 5px;} .pl10{padding-left:10px;} .pl15{padding-left: 15px;} .pl20{padding-left: 20px;} .pl30{padding-left: 30px;} .pl50{padding-left: 50px;} .pl100{padding-left: 100px;} .pr5{padding-right: 5px;} .pr10{padding-right:10px;} .pr15{padding-right: 15px;} .pr20{padding-right: 20px;} .pr30{padding-right: 30px;} .pr50{padding-right: 50px;} .pr100{padding-right: 100px;}

建議:
1.在做CSS專案規劃時,首先寫好css reset類程式碼,因為瀏覽器對於標籤是有預設樣式的。具體程式碼可參考上述程式碼。
2.劃分CSS原子類。一個大型的專案,會有一些常用的css規則,比如text-align,float,border,positon等有可能出現十幾次,幾十次。。加入我們已經在專案開始的時候就已經定義好了我們的css原子類,那麼在需要左浮動的元素上只需要引入.fl的class就可以了。但是,當一個元素引入的css原子類多起來的時候,那麼這個元素的class的值也會快速膨脹起來,class屬性值最好不要超過5個,當過多時,我們可以考慮css模組化。
3.把專案中可複用的元件模組化,比如button,input,單獨放在common元件檔案裡,既能保持網站風格的統一,又便於後期複用和維護。