1. 書寫規範
1.1 項目結構
---/html/
|---- /index
|---- /index/index.html 首頁
|---- /user/ 與使用者相關的頁面
|---- /user/login.html 登入頁
---/css/
|---- /base.css 重置浏覽器樣式
|---- /page 邏輯頁面的css
|---- /page/pagename.css 單獨書寫的css
|---- /common.css css通用樣式庫
---/js/
|---- /lib 公用元件
|---- /lib/jquery.2.2.3.min.js 調用jq庫檔案
|---- /page 邏輯頁面的js
|---- /page/pagename.js 單獨書寫的js
|---- /common.js 公用方法
---/img/
|---- /page 頁面對應的圖檔
|---- /page/wap 手機端圖檔夾
|---- /page/wap/wap_icon.png 手機端圖示
|---- /logo.png 公用圖檔
1.2 項目命名規範
* 項目:用項目對應的英文單詞命名
* 檔案及檔案夾:
* 全部英文小寫字母,可以使用中線,不可出現其他字元,如login,my-order
* 調用 `/lib`裡面的檔案需包含版本号,壓縮檔案需包含`min`關鍵詞,其他插件則可不包含,如:`/lib/jquery.1.9.1.js`
1.3 格式&編碼
* 文本檔案: `.xxx` UTF-8_\(無BOM\)_ 編碼
* 圖檔檔案: `.png` _(PNG-24)_ `.jpg` _(壓縮率8-12)_
* 動态圖檔: `.gif`
* 壓縮檔案: `.tar.gz` `.zip``.rar`
2. CSS 規範
2.1 CSS 命名規範
* 所有的命名用小寫的英文單詞
* 不使用簡單的方位詞直接命名,如“left”,“bottom”
* 不縮寫單詞,除非一看就明白的單詞
* 長名稱或詞組可以使用下劃線作為連接配接符
* 避免選擇器嵌套層級過多,少于3級
* 不要随意使用id,id應該按需使用,而不能濫用
* 使用CSS縮寫屬性 ,比如padding:0 10px 5px 5px等等,這樣精簡代碼同時又能提高使用者的閱讀體驗。
命名參考如下:
CSS樣式命名 | 說明 |
---|---|
網頁公共命名 | |
wrapper | 頁面外圍控制整體布局寬度 |
container或content | 容器,用于最外層 |
layout | 布局 |
head, header | 頁頭部分 |
foot, footer | 頁腳部分 |
nav | 主導航 |
sub_nav | 二級導航 |
menu | 菜單 |
sub_menu | 子菜單 |
side_bar | 側欄 |
sidebar_l, sidebar_r | 左邊欄或右邊欄 |
main | 頁面主體 |
tag | 标簽 |
msg message | 提示資訊 |
tips | 小技巧 |
vote | 投票 |
friendlink | 友情連結 |
title | 标題 |
summary | 摘要 |
login_bar | 登入條 |
search_input | 搜尋輸入框 |
hot | 熱門熱點 |
search | 搜尋 |
search_output | 搜尋輸出和搜尋結果相似 |
search_bar | 搜尋條 |
search_results | 搜尋結果 |
copyright | 版權資訊 |
branding | 商标 |
logo | 網站LOGO标志 |
site_info | 網站資訊 |
site_info_legal | 法律聲明 |
site_info_credits | 信譽 |
join_us | 加入我們 |
partner | 合作夥伴 |
service | 服務 |
regsiter | 注冊 |
arr arrow | 箭頭 |
guild | 指南 |
site_map | 網站地圖 |
list | 清單 |
home_page | 首頁 |
sub_page | 二級頁面子頁面 |
tool, toolbar | 工具條 |
drop | 下拉 |
dorp_menu | 下拉菜單 |
status | 狀态 |
scroll | 滾動 |
tab | 标簽頁 |
left right center | 居左、中、右 |
news | 新聞 |
download | 下載下傳 |
banner | 廣告條(頂部廣告條) |
2.2 CSS 書寫規範
* 向“無ID,無層級,無标簽”準則靠攏,可有效提高重用性,減小檔案大小,提升渲染效率
2.3 CSS 注釋格式
* 用來區分頁面的注釋,如/******************************************産品中心****************************************/
* 子產品的注釋,如/*首頁導航欄*/
2.4 CSS各屬性的排列順序:不做硬性要求
* Positioning(定位,如position,top,z-index)
* Box model(盒模型,如display,box-sizing,width,border)
* Typographic(排版,如font,line-height,text-align)
* Visual(視覺,如background,color,opacity)
* Other(其他,如cursor)
由于定位(positioning)可以從正常的文檔流中移除元素,并且還能覆寫盒模型(box model)相關的樣式,是以排在首位。盒模型決定了元件的尺寸和位置,是以排在第二位。
其他屬性隻是影響元件的内部(inside)或者是不影響前兩組屬性,是以排在後面。
2.5 CSS格式化
使用不換行方式書寫,增加書寫速度
.box{background: none repeat scroll 0 0 transparent;bottom: 11px;position: relative;width: 22px;z-index: 33;}
2.6 CSS字型機關
* px像素(Pixel),相對長度機關,像素px是相對于顯示器螢幕分辨率而言的。
* em是相對長度機關。相對于目前對象内文本的字型尺寸。如目前對行内文本的字型尺寸未被人為設定,則相對于浏覽器的預設字型尺寸。
* rem也是相對長度機關,但相對的隻是HTML根元素。
* vw代表視窗(Viewport)的寬度為1%,如果視窗寬度為1000px,那麼50vw = 500px
* vh代表視窗高度的百分,如果視窗高度為800px,那麼50vh = 400px
* 公司項目使用時注意事項:現有項目都是使用px作為機關,現推薦使用rem,vw,vh作為機關
3. JS 規範
3.1 JS命名規範
3.1.1 JS 變量命名
* 命名方法:小駝峰式命名法
* 命名規範:字首應當是名詞。(函數的名字字首為動詞,以此區分變量和函數)
* 命名建議:盡量在變量名字中展現所屬類型,如:length、count等表示數字類型;而包含name、title表示為字元串類型。
* 示例
// 好的命名方式
var maxCount = 10;
var tableTitle = 'LoginTable';
// 不好的命名方式
var setCount = 10;
var getTitle = 'LoginTable';
3.1.2 JS 函數命名
* 命名方法:小駝峰式命名法
* 命名規範:字首應當為動詞
* 命名建議:可使用常見動詞約定
3.1.3 JS 常量命名
* 命名方法:名稱全部大寫
* 命名規範:使用大寫字母和下劃線來組合命名,下劃線用以分割單詞
* 示例
var MAX_COUNT = 10;
var URL = 'http://www.baidu.com';
3.1.4 JS 檔案命名
* 使用短線(-)或句點(.)作為分隔符号,推薦使用句點,最好使用小寫英文字元,不要使用其他符号和擴充字元,如 jQuery UI 1.9.0 的源檔案可命名為“jquery-ui-1.9.0.js”
* 使用 .js 擴充名,這個擴充名的相容性最好。其實任何擴充名都可以,隻要是 text 類型、編碼正确即可
* 用句點分隔表示名稱中的從屬關系,範圍大的在前,如jQuery 的表單插件 Form既可以命名為jquery.form.js
3.2 js 注釋格式
* 使用多行注釋,以/*開頭,*/結尾
3.3 js 注意事項
* 書寫格式
* JS 換行縮進:采用tab(打散為4個空格)
* 結束行需添加分号`;`
* 性能
* 盡量選用局部變量而不是全局變量
* 盡量使用鍊式寫法
* 盡量減少DOM調用
* 将js腳本放到頁面底部
* 使用jquery的data來存取資料,減少對dom的操作
* 使用on方法綁定事件,這是jquery的推薦使用
* 選擇器的選擇:盡量不用标簽選擇器,能用ID選擇器的就不用class選擇器
4. HTML 規範
4.1 标簽使用規範
* 盡量減少标簽層級
* 雙标簽必須閉合,單标簽用斜線閉合
* HTML第一行統一使用HTML5标準<!DOCTYPE html>
* 一律統一标簽結尾斜杠的書寫形式:`<br />` `<hr />` 注意之間空格
* 避免使用已過時标簽,如:`<font>` `<frame>` `<s>`
* `<img>`标簽預設預設格式:`<img src="#" alt="預設時文字" />`
* `<a>`标簽預設格式:`<a href="#" target="_blank" rel="external nofollow" title="連結名稱">xxx</>` 注:`target="_blank"` 根據需求決定
* style、link、script可省略type屬性,因為 text/css 和 text/javascript 分别是他們的預設值
4.2 HTML注釋
<!--内容-->
<div class="content">
<p>content</p>
</div>
4.3 注意事項
* 手機端的自适應布局盡量采用彈性布局,而不是百分比
* `css`檔案都 置于頭部
* HTML換行縮進:采用 tab空格
* 其他效果`js`及`統計代碼` 檔案置于尾部
* 手機端的頁面都按750px來做,顯示效果按375px
5. Image 規範
5.1 圖檔規範
* 圖檔大小:切圖時使用web格式儲存,減小圖檔大小
* 圖檔尺寸:一律采用整數,如20X20,50X50
* 圖檔合并:小圖檔一律要合并,并儲存對應的psd檔案,以便後期修改
轉載位址:https://lingdianit-com.github.io/Front-End-Standards/#1