如何提高CSS的可維護(hù)性


為了排版的正確这弧,請查看我的原文:如何提高CSS的可維護(hù)性
為CSS正確的命名可以提高代碼的可讀性哄芜,便于后期查找修改。
下面記錄一些常用的手段:

命名與備注

命名是提高代碼可讀性的第一步,也是最重要的一步离唬。我接觸css的時候命名的問題困擾了我很久扰楼,尤其是我這種對英語一竅不通的人來說呀癣,當(dāng)時我就是胡亂命名的,后來看多了別人的代碼弦赖,才知道這東西是可以統(tǒng)一化的项栏。
下面是一些常規(guī)的命名(來自別人的blog,摘抄下來方便平時多看看):

頭:header
內(nèi)容:content/container
尾:footer
導(dǎo)航:nav
側(cè)欄:sidebar
欄目:column
頁面外圍控制整體佈局寬度:wrapper
左右中:left right center
登錄條:loginbar
標(biāo)志:logo
廣告:banner
頁面主體:main
熱點(diǎn):hot
新聞:news
下載:download
子導(dǎo)航:subnav
菜單:menu
子菜單:submenu
搜索:search
友情鏈接:friendlink
頁腳:footer
版權(quán):copyright
滾動:scroll
內(nèi)容:content
標(biāo)簽:tags
文章列表:list
提示信息:msg
小技巧:tips
欄目標(biāo)題:title
加入:joinus
指南:guide
服務(wù):service
注冊:regsiter
狀態(tài):status
投票:vote
合作伙伴:partner
導(dǎo)航:nav
主導(dǎo)航:mainnav
子導(dǎo)航:subnav
頂導(dǎo)航:topnav
邊導(dǎo)航:sidebar
左導(dǎo)航:leftsidebar
右導(dǎo)航:rightsidebar
菜單:menu
子菜單:submenu
標(biāo)題: title
摘要: summary

良好的備注也是同樣重要蹬竖,比如可以在不同的功能區(qū)之間加入注釋沼沈,或者是在CSS開頭加入注釋導(dǎo)航等。這個方法我是在看國外一個WordPress模板的css的時候看到的案腺,我就在某個項(xiàng)目中使用了一次庆冕,效果還是不錯的。

/**
 * Table of Contents:
 * A 首頁
     * 1.0 - Body
     * 2.0 - 頭部
     * 3.0 - 導(dǎo)航區(qū)
     * 4.0 - 品牌區(qū)
     * 5.0 - 最新評論區(qū)
     * 6.0 - 右側(cè)搜索區(qū)
     * 7.0 - 右側(cè)熱門商店
     * 8.0 - 熱門折扣卷
     * 9.0 - Media Queries
     * 10.0- Footer
     * 11.0- Comments
     * 12.0- Coupon-info列表頁面
     * 13.0- Coupon-info內(nèi)容頁面
*/
/* A 首頁  */


/* 1.0 Body */

body {
    background: #f3f3f3;
}
ul,li {
    margin: 0;
    padding: 0;
    list-style-type: none;
}
.boder {
    margin-top: 15px;
    border: 1px solid #E2E2E2;
    background: white;
    margin-bottom: 15px;
}
.max-clear {
    clear: both;
}


/* 2.0 頭部區(qū)開始*/

.logo {
    float: left;
}
.banner {
    margin-top: 5px;
    float: right;
}
#main {
    clear: both;
}
/* 頭部區(qū)結(jié)束*/


提取重復(fù)樣式

這個方法我也經(jīng)常見過劈榨,但每次真正做東西的時候访递,就忘記了這茬。經(jīng)常見到的是在一個div里有多個類同辣,如:

<div class="title black-border bold">Ruofei Blog</div>
<style type="text/css">
.title{padding: 10px 20px;width: 10%;text-align: center;}
.black-border{border: 1px #000 solid;}
.bold{font-weight: bold;}
</style>

效果如圖:



其中title類是主要定義這個div的邊距位置寬度拷姿,black-border類是專門定義一個黑色的像素的實(shí)線邊框,bold類是加粗旱函。將這三個類分離開后响巢,以后需要用到加粗的熟悉時,直接在div中加上bold類棒妨,需要加黑色實(shí)線邊框的時候直接加上black-border類即可踪古,不需要再css樣式中重復(fù)寫這些屬性,大大的減少了css的代碼量券腔。例如:

<div class="title black-border bold">Ruofei Blog</div>

<br/>

[站外圖片上傳中……(3)]

<style type="text/css">
.title{padding: 10px 20px;padding: 10px 20px;width: 10%;text-align: center;}
.black-border{border: 1px #000 solid;}
.bold{font-weight: bold;}
</style>

效果如下:


直接給img標(biāo)簽加了一個black-border類伏穆,就得到了一個和上面div一樣的邊框效果,而我并沒有在css中單獨(dú)為這個img標(biāo)簽定義邊框?qū)傩浴?/p>

我知道這個對大家來說是很正常的事情纷纫,但對我這種剛接觸前端的小白來說枕扫,真心很神奇!

書寫順序

參考的文章中提到了css的幾種書寫順序辱魁,當(dāng)然每個人有每個人的習(xí)慣烟瞧。

(1)位置屬性(position, top, right, z-index, display, float等)
(2)大小(width, height, padding, margin)
(3)文字系列(font, line-height, letter-spacing,color- text-align等)
(4)背景(background, border等)
(5)其他(animation, transition等)

自己的一點(diǎn)小感悟

當(dāng)我看到這里的時候诗鸭,我突然覺得,上一點(diǎn)提取重復(fù)樣式完全可以按照這種分類去歸類参滴,相同類型的css分離成一個類强岸,后面即可重復(fù)調(diào)用坟瓢,喳逛。

<div class="title black-border font-bold">Ruofei Blog</div>

<br/>

[站外圖片上傳中……(4)]

<style type="text/css">
.title{padding: 10px 20px;padding: 10px 20px;width: 10%;text-align: center;}
.black-border{border: 2px #000 solid;}
.font-bold{font-family: "PT Mono", Consolas, Monaco, Menlo, monospace;font-weight: bold;}
</style>

我對上面的那段代碼修改了下,title類專門控制位置信息锭亏,black-border類控制邊框樣式过蹂,font-bold類控制字體信息十绑。

但我寫完后發(fā)現(xiàn),按照這種方法分類確實(shí)可以酷勺,但還是得考慮css重復(fù)性的問題本橙,比如我一個地方的文字需要加粗,但不需要這個字體脆诉,所以就不能使用font-bold類甚亭。

總結(jié),還是得在動手前想清楚頁面中击胜,重復(fù)的內(nèi)容是哪些亏狰,將重復(fù)的部分提取出來,單獨(dú)寫成一個類偶摔,盡管這個類可能只是控制一個文字的字體大小暇唾。

參考文章總結(jié)的方法

1、寫代碼之前:從PSD文件出發(fā)
當(dāng)我們拿到設(shè)計師給的PSD時辰斋,首先不要急于寫CSS代碼策州,首先對整個頁面進(jìn)行分析,主要關(guān)注點(diǎn)是下面幾個:
(1)頁面分成了幾個模塊宫仗,哪些模塊是公用的够挂,常見的比如頭部和底部,還有一些菜單欄等等
(2)分析每一個模塊都有什么樣式藕夫,提取出公用的樣式孽糖,注意公用樣式是全局公用(整個頁面公用)還是局部公用(模塊內(nèi)公用),公用樣式包括公用的狀態(tài)樣式毅贮,比如公用的選中狀態(tài)梭姓,禁用狀態(tài)等等。

2嫩码、開始寫代碼
根據(jù)對PSD文件的分析,我們就可以開始著手寫代碼罪既,我比較推薦SMACSS將樣式分成不同類型的做法:
(1)第一步是搭好頁面的骨架铸题,也就是base樣式铡恕,layout樣式。
(2)第二步就是依次實(shí)現(xiàn)不同的模塊丢间,在這里我推薦BEM的命名思想探熔,但是可以嵌套一到兩層的選擇器結(jié)構(gòu)

3、優(yōu)化代碼
我相信當(dāng)我們完成基本的頁面效果后烘挫,還是會存在著一些重復(fù)的或者不夠簡潔的代碼诀艰,這時候就是要去優(yōu)化這些代碼,主要是在提取重復(fù)代碼饮六,盡可能地精簡代碼其垄。

部分內(nèi)容參考:CSS代碼重構(gòu)與優(yōu)化之路

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市卤橄,隨后出現(xiàn)的幾起案子绿满,更是在濱河造成了極大的恐慌,老刑警劉巖窟扑,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喇颁,死亡現(xiàn)場離奇詭異,居然都是意外死亡嚎货,警方通過查閱死者的電腦和手機(jī)橘霎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殖属,“玉大人姐叁,你說我怎么就攤上這事〕栏ǎ” “怎么了七蜘?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長墙懂。 經(jīng)常有香客問我橡卤,道長,這世上最難降的妖魔是什么损搬? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任碧库,我火速辦了婚禮,結(jié)果婚禮上巧勤,老公的妹妹穿的比我還像新娘嵌灰。我一直安慰自己,他們只是感情好颅悉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布沽瞭。 她就那樣靜靜地躺著,像睡著了一般剩瓶。 火紅的嫁衣襯著肌膚如雪驹溃。 梳的紋絲不亂的頭發(fā)上城丧,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機(jī)與錄音豌鹤,去河邊找鬼亡哄。 笑死,一個胖子當(dāng)著我的面吹牛布疙,可吹牛的內(nèi)容都是我干的蚊惯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼灵临,長吁一口氣:“原來是場噩夢啊……” “哼截型!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起俱诸,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤菠劝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后睁搭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赶诊,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年园骆,在試婚紗的時候發(fā)現(xiàn)自己被綠了舔痪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡锌唾,死狀恐怖锄码,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晌涕,我是刑警寧澤滋捶,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站余黎,受9級特大地震影響重窟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜惧财,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一巡扇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧垮衷,春花似錦厅翔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春涩赢,著一層夾襖步出監(jiān)牢的瞬間戈次,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工筒扒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绊寻。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓花墩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親澄步。 傳聞我的和親對象是個殘疾皇子冰蘑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容