前端必備編碼規(guī)范

總結(jié)本規(guī)范的目的不是大而全蓬抄,而是把我們最常用的規(guī)范總結(jié)一下圈膏,花最少的精力記住最重要的內(nèi)容倔矾。

1. 一般規(guī)范

列舉了一些可應(yīng)用在 HTML, JavaScript 和 CSS 上的通用規(guī)則驼抹。

1.1 文件/資源命名

  • 文件命名以字母開頭浮还,全部小寫竟坛,單詞之間以減號(hào)(-)連接,如my-camel-case-name.css
    (駝峰命名法用在javascript的變量及函數(shù)的命名中)

1.2 協(xié)議

  • srcurl所指路徑不帶http:https:担汤,如src="http://cdn.com/foundation.min.js"涎跨。

1.3 縮進(jìn)

  • 官方(W3C)沒有給出,建議縮進(jìn)4或2個(gè)空格(不要使用tab)崭歧,與團(tuán)隊(duì)保持一致隅很。

1.4 關(guān)注點(diǎn)分離

  • 嚴(yán)格地保證結(jié)構(gòu)、表現(xiàn)驾荣、行為三者分離外构,并盡量使三者之間沒有太多的交互和聯(lián)系。
    就是說播掷,盡量在文檔和模板中只包含結(jié)構(gòu)性的 HTML审编,而將所有表現(xiàn)代碼,移入樣式表中歧匈;將所有動(dòng)作行為垒酬,移入腳本之中。

2. html規(guī)范

2.1 語義化標(biāo)簽

主流頁面布局
  • <header> 表示頁眉,頁頭
  • <nav> 表示導(dǎo)航內(nèi)容件炉;
  • <section> 表示文檔中的節(jié)勘究、區(qū)段,一般包含標(biāo)題和內(nèi)容斟冕;
  • <article> 可以看成是一種特殊類型的section元素口糕,比section更強(qiáng)調(diào)獨(dú)立性。比如blog的內(nèi)容磕蛇,報(bào)紙的文章景描。(具體區(qū)別可以查看div section 和article的區(qū)別);
  • <aside> 表示article以外的內(nèi)容秀撇,而且應(yīng)該和article有一定的關(guān)系超棺,塊級(jí)元素;
  • <footer> 表示頁腳;
  • <div> 本身無特殊含義呵燕,用于布局棠绘。
    另外,盡量用alt標(biāo)簽去描述圖片再扭。

HTML 標(biāo)簽的目的氧苍,是為展示內(nèi)容信息。

  • 不要引入一些特定的 HTML 結(jié)構(gòu)來解決一些視覺設(shè)計(jì)問題
  • 不要將 img 元素當(dāng)做專門用來做視覺設(shè)計(jì)的元素

2.2 屬性

  1. HTML 屬性應(yīng)當(dāng)按照以下給出的順序依次排列泛范,確保代碼的易讀性候引。
  • class(首位)
  • idname
  • data-*
  • src敦跌、fortypehref
  • title柠傍、alt
  • aria-*麸俘、 role
  1. id 和 class
    id一般用于網(wǎng)頁大致布局,比如標(biāo)志惧笛、導(dǎo)航从媚、主體內(nèi)容、版權(quán)患整,規(guī)范命名為#logo , #nav , #content ,#copyright拜效。一般項(xiàng)目中class用于css中,idjs用來操作dom且不添加樣式各谚,(jq操作的class一般不加樣式)紧憾。
    class的命名原則:
  • 內(nèi)容優(yōu)先,表現(xiàn)為輔
  • 一律小寫昌渤,多個(gè)單詞以連字符連接

2.3 格式

  1. html中使用雙引號(hào)赴穗,不用單引號(hào),如class="news-article"膀息。
  2. 每一個(gè)塊狀元素般眉,列表元素和表格元素后,加上一新空白行潜支。
  3. 內(nèi)聯(lián)元素寫在一行內(nèi)甸赃,塊狀元素還有列表和表格要另起一行。

3. css規(guī)范

3.1 屬性聲明順序

  • 顯示屬性
  • 元素屬性
  • 內(nèi)容屬性
/* 顯示屬性 */
 display || visibility
 list-style
 position
 top || right || bottom || left
 z-index
 clear
 float

 /* 元素屬性 */
 width
 max-width || min-width
 height
 max-height || min-height
 overflow || clip
 margin 
 padding
 outline
 border
 background

 /* 內(nèi)容屬性 */
 color
 font
 text-overflow
 text-align
 text-indent
 line-height
 white-space
 vertical-align
 cursor
 content

3.2 格式

  • 小圖片(必須)sprite 合并
  • 每個(gè)樣式屬性后加 ";"
  • 屬性名的冒號(hào)后使用一個(gè)空格
  • 選擇器分離和聲明分離
h1,
h2,
h3 {
    font-weight: normal;
    line-height: 1.2;
}
  • 規(guī)則之間始終有一個(gè)空行
html {
    background: #fff;
}

body {
    margin: auto;
    width: 50%;
}
  • 選擇器中避免標(biāo)簽名,如div.subnav
  • 避免使用通配規(guī)則
  • 規(guī)則越具體越好
    盡量不要使用ul li a這樣長(zhǎng)的選擇符冗酿,最好使用 .content >.content-body >.title之類的選擇符埠对。
  • 省略“0”值后面的單位
  • 使用小寫的十六進(jìn)制數(shù)字
    在可能的情況下,使用3個(gè)字符的十六進(jìn)制表示法已烤。

3.3 css文件命名規(guī)范

主要的 master.css鸠窗;
模塊 module.css;
基本共用 base.css胯究;
布局稍计,版面layout.css;
主題 themes.css裕循;
專欄 columns.css臣嚣;
文字 font.css;
表單 forms.css剥哑;
補(bǔ)丁 mend.css硅则;
打印print.css

4. javaScript規(guī)范

4.1 命名規(guī)范

函數(shù)和變量命名采用駝峰命名法。

4.2 編碼規(guī)則

  1. 采用統(tǒng)一的縮進(jìn)方式排版代碼株婴;
  2. 關(guān)鍵詞怎虫、條件括弧后面使用空格暑认;運(yùn)算操作符號(hào)兩側(cè)使用空格;語句分割符‘,’后面使用空格大审;
var name[空格]=[空格]value;
     if[空格](a,[空格]b) {
}
  1. 左大括號(hào)"{"可以居行尾蘸际,也可寫在下行首(獨(dú)自一行),右大括號(hào)"}"單獨(dú)占一行,居行首徒扶;
  2. 句末必須用分號(hào)結(jié)尾粮彤;
  3. 單行過長(zhǎng)應(yīng)在適當(dāng)位置予以換行,增強(qiáng)可讀性;
  4. if姜骡、while导坟、for、do語句的執(zhí)行體總是用"{"和"}"括起來圈澈,即使在其結(jié)構(gòu)體內(nèi)只有一條語句惫周;
  5. 語法意義相互獨(dú)立的代碼將用空行分隔。

錯(cuò)誤之處士败,敬請(qǐng)之處闯两,謝謝您的閱讀。

參考資料:
前端編碼規(guī)范(1)—— 一般規(guī)范
想成為前端大神,你不得不知曉的web前端命名規(guī)范谅将!
web前端規(guī)范

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漾狼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子饥臂,更是在濱河造成了極大的恐慌逊躁,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隅熙,死亡現(xiàn)場(chǎng)離奇詭異稽煤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)囚戚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門酵熙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人驰坊,你說我怎么就攤上這事匾二。” “怎么了拳芙?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵察藐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我舟扎,道長(zhǎng)分飞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任睹限,我火速辦了婚禮譬猫,結(jié)果婚禮上讯檐,老公的妹妹穿的比我還像新娘。我一直安慰自己染服,他們只是感情好裂垦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肌索,像睡著了一般。 火紅的嫁衣襯著肌膚如雪特碳。 梳的紋絲不亂的頭發(fā)上诚亚,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音午乓,去河邊找鬼站宗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛益愈,可吹牛的內(nèi)容都是我干的梢灭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蒸其,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼敏释!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起摸袁,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤钥顽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后靠汁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜂大,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蝶怔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奶浦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡踢星,死狀恐怖澳叉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情斩狱,我是刑警寧澤耳高,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站所踊,受9級(jí)特大地震影響泌枪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秕岛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一碌燕、第九天 我趴在偏房一處隱蔽的房頂上張望误证。 院中可真熱鬧,春花似錦修壕、人聲如沸愈捅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蓝谨。三九已至,卻和暖如春青团,著一層夾襖步出監(jiān)牢的瞬間譬巫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工督笆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芦昔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓娃肿,卻偏偏與公主長(zhǎng)得像咕缎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子料扰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案凭豪? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,753評(píng)論 1 92
  • 什么是html? html是一種網(wǎng)頁標(biāo)記語言记罚,叫超文本標(biāo)記語言墅诡,我們平時(shí)上網(wǎng)所看到的所有網(wǎng)頁均來自于html,英文...
    波段頂?shù)?/span>閱讀 8,364評(píng)論 2 7
  • ——題記 有些時(shí)候,有些事情真的仿佛是上天注定的说庭。沒什么道理可...
    高冷學(xué)姐_b8af閱讀 282評(píng)論 0 1