一周一章前端書·第15周:《HTML與CSS進階教程》S02E02

第4章:CSS規(guī)范

4.1 CSS規(guī)范簡介

  • 規(guī)范化的代碼更易于閱讀每强,降低不管是修改現(xiàn)有代碼竭讳,還是擴展新代碼的維護成本。
  • 代碼的規(guī)范化問題创肥,往往在規(guī)模大的項目協(xié)作中突顯出來。1個人的代碼寫得晦澀難懂值朋,別人也無從得知叹侄,但如果在100個人的項目組中,每個人都在寫爛代碼昨登,項目只會是舉步維艱趾代。

4.2 命名規(guī)范

4.2.1 CSS文件命名

注意:在開發(fā)階段,我們通常將不同作用的css代碼段放到多個獨立的文件丰辣,以便于開發(fā)和修改撒强。在發(fā)布時,則會通過工具把多個CSS文件壓縮合并成一個文件笙什,避免頁面引發(fā)多次HTTP請求載入多個文件飘哨。

  • 常用的css文件名:
文件名 說明
reset.css 針對不同的瀏覽器,重置元素的默認樣式
gloal.css 全局樣式琐凭,指定頁面的基礎樣式
themes.css 主題樣式芽隆,可以實現(xiàn)換膚功能
module.css 模塊樣式
master.css 母版頁樣式
columns.css 專欄頁樣式
forms.css 表單樣式
mend.css 補丁樣式,用于維護统屈、修改樣式
print.css 打印樣式胚吁,用于打印時的樣式

4.2.2 id和class命名

  • 頁面id和class是會影響搜索引擎優(yōu)化的,如果頁面的元素命名很隨意愁憔,導致搜索引擎小蜘蛛迷路腕扶,它以后就會很少來光顧你的網站。
  • 常見的id和class的命名方式有三種:
    • 駝峰命名法(subLeftMenu);
    • 中劃線命名法(sub-left-menu);
    • 下劃線命名法(sub_left_menu);
  • id和class命名的注意事項:
    • 使用英文命名而非中文拼音惩淳;
    • 命名盡量不縮寫蕉毯,或者采用常用的縮寫單詞,比如nav思犁;
    • 命名規(guī)范保持統(tǒng)一代虾,不要混入多種命名方式;
    • 為避免class命名的重復激蹲,通常使用父元素的class名作為前綴棉磨;
      <div class="column">
          <h3 class="column-title"></h3>
          <div class="column-content"></div>
      </div>
      
  • 參考采用常見的頁面主體部分的命名:
頁面部分 命名
最外層 wrapper(通常用于包裹整個頁面)
頭部 header
內容 content
側欄 sidebar
標志 logo
導航條 nav
主導航 main-nav
子導航 sub-nav
主體 main
主體左側 main-left
主體右側 main-right
菜單 menu
子菜單 sub-menu
標題 title
摘要 summary
搜索 search
標簽頁 tab
廣告 banner
相關文章 related
底部 footer
友情鏈接 friendlink
加入我們 joinus
版權 copyright
服務 service
登陸 login
注冊 register

4.3 書寫規(guī)范

  • 對于普通的CSS代碼,建議以下的CSS書寫順序來書寫:
屬性類別 舉例
影響文檔流的屬性(布局屬性) display学辱、position乘瓤、float、clear等
自身的盒模型屬性 width策泣、height衙傀、padding、margin萨咕、border统抬、overflow等
文本性屬性 font、line-height危队、text-align聪建、text-indent、vertical-align等
裝飾性屬性 color茫陆、background-color金麸、opacity、cursor等
其他 content簿盅、list-style挥下、quotes等
  • 當然并不是說書寫CSS時要按這樣的順序來寫,你可以先定義盒模型的屬性挪鹏,再定義元素的布局屬性见秽,但最終提交代碼時,元素的CSS樣式代碼按照是這樣的順序就可以了讨盒。簡單來說是解取,只關心“書寫結果”,而不是“書寫過程”返顺。
  • 案例:
#main{
    /*布局屬性*/   
    display:inline-block;
    position:absolute;
    top:0;
    left:0;
    /*盒模型屬性*/
    width:100px;
    height:100px;
    border:1px solid gray;
    /*文本性屬性*/
    font-size:15px;
    font-weight:boder;
    text-indent:2em;
    /*裝飾性屬性*/
    color:#fff;
    backgroud-color:Red;
    /*其他屬性*/
    cursor:pointer;
}
  • 除了普通的CSS代碼之外禀苦,還有一些專門為了實現(xiàn)特殊功能的CSS代碼,比如單行文本居中遂鹊、塊元素居中之類的代碼振乏。書寫這類CSS代碼,可以不遵循上面提到的書寫順序秉扑,而是單獨插入其中慧邮。舉例:
#main{
    /*布局屬性*/   
    float:left;
    width:100px;
    /*單行文本居中*/
    height:50px;
    line-height:50px;
}

4.4 注釋規(guī)范

  • 文件頂部注釋通常包含文件的說明调限、文件的版本更新、作者以及版權聲明:
/*
 * @description: 說明
 * @author: 作者
 * @update: 更新時間误澳,如2018-01-28
 */
  • 模塊注釋是各個頁面組件模塊(如導航耻矮、底部信息欄)的注釋說明,一般說明代碼的“開始”和“結束”:
/*導航欄代碼忆谓,開始*/
........
/*導航欄代碼裆装,結束*/
  • 除此之外,我們還可以向關鍵代碼添加單行/多行注釋:
/* 單行注釋內容 */
/* 
 * 多行注釋內容
 * 多行注釋內容
 * 多行注釋內容
 */
  • 項目發(fā)布時倡缠,工具往往會將代碼中的注釋全部刪除哨免,但通過在注釋中添加感嘆號,可以保留注釋內容:
/*! 
 *! 發(fā)布版本: V1.1 
 *! 時間: 2018-01-28 
 */

4.5 CSS reset

  • HTML元素在不同的瀏覽器上的默認樣式是不一樣的昙沦,往往會給開發(fā)帶來較大的麻煩琢唾。而解決這一煩惱問題的辦法就是:去除HTML元素在瀏覽器的默認樣式(CSS reset)。
  • 我們不建議直接通過通配符來執(zhí)行CSS reset盾饮,比如*{padding:0;margin:0;}慧耍,因為它會查詢并修改所有元素的樣式屬性,性能較低丐谋。這里我們推薦參考使用Eric Meyer發(fā)布的 重置樣式表芍碧。
  • CSS reset的注意事項:
    • CSS reset是所有樣式代碼的前提,所以應該將CSS reset代碼段方到最前面才有意義号俐;
    • 應該根據(jù)項目的具體情況泌豆,對重置樣式表來進行調整使用,而不是簡單的復制粘貼到項目中吏饿,所謂“濫用不如不用”踪危;
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市猪落,隨后出現(xiàn)的幾起案子贞远,更是在濱河造成了極大的恐慌,老刑警劉巖笨忌,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓝仲,死亡現(xiàn)場離奇詭異,居然都是意外死亡官疲,警方通過查閱死者的電腦和手機袱结,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來途凫,“玉大人垢夹,你說我怎么就攤上這事∥眩” “怎么了果元?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵促王,是天一觀的道長。 經常有香客問我而晒,道長硼砰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任欣硼,我火速辦了婚禮,結果婚禮上恶阴,老公的妹妹穿的比我還像新娘诈胜。我一直安慰自己,他們只是感情好冯事,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布焦匈。 她就那樣靜靜地躺著,像睡著了一般昵仅。 火紅的嫁衣襯著肌膚如雪缓熟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天摔笤,我揣著相機與錄音够滑,去河邊找鬼。 笑死吕世,一個胖子當著我的面吹牛彰触,可吹牛的內容都是我干的。 我是一名探鬼主播命辖,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼况毅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尔艇?” 一聲冷哼從身側響起尔许,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎终娃,沒想到半個月后味廊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡棠耕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年毡们,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昧辽。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡衙熔,死狀恐怖,靈堂內的尸體忽然破棺而出搅荞,到底是詐尸還是另有隱情红氯,我是刑警寧澤框咙,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站痢甘,受9級特大地震影響喇嘱,放射性物質發(fā)生泄漏。R本人自食惡果不足惜塞栅,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一者铜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧放椰,春花似錦作烟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至如蚜,卻和暖如春压恒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背错邦。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工探赫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撬呢。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓期吓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親倾芝。 傳聞我的和親對象是個殘疾皇子讨勤,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容