Web前端開發規範文檔你需要知道的事

来源:http://www.cnblogs.com/feiyu159/archive/2017/09/26/7597425.html
-Advertisement-
Play Games

Web前端開發規範文檔你需要知道的事 規範目的 為提高團隊協作效率, 便於後臺人員添加功能及前端後期優化維護, 輸出高質量的文檔, 特製訂此文檔. 本規範文檔一經確認, 前端開發人員必須按本文檔規範進行前臺頁面開發. 本文檔如有不對或者不合適的地方請及時提出, 經討論決定後方可更改. 基本準則 符合 ...


Web前端開發規範文檔你需要知道的事

規範目的

      為提高團隊協作效率, 便於後臺人員添加功能及前端後期優化維護, 輸出高質量的文檔, 特製訂此文檔. 本規範文檔一經確認, 前端開發人員必須按本文檔規範進行前臺頁面開發. 本文檔如有不對或者不合適的地方請及時提出, 經討論決定後方可更改.

基本準則

      符合web標準, 語義化html, 結構表現行為分離, 相容性優良. 頁面性能方面, 代碼要求簡潔明瞭有序, 儘可能的減小伺服器負載, 保證最快的解析速度.

文件規範

1. html, css, js, images文件均歸檔至<系統開發規範>約定的目錄中;

2. html文件命名: 英文命名, 尾碼.htm. 同時將對應界面稿放於同目錄中, 若界面稿命名為中文, 請重命名與html文件同名, 以方便後端添加功能時查找對應頁面;

3. css文件命名: 英文命名, 尾碼.css. 共用base.css, 首頁index.css, 其他頁面依實際模塊需求命名.;

4. Js文件命名: 英文命名, 尾碼.js. 共用common.js, 其他依實際模塊需求命名.

html書寫規範

1. 文檔類型聲明及編碼: 統一為html5聲明類型; 編碼統一為UTF-8, 書寫時利用IDE實現層次分明的縮進;

2. 非特殊情況下樣式文件必須外鏈至…之間;非特殊情況下JavaScript文件必須外鏈至頁面底部;

3. 引入樣式文件或JavaScript文件時, 須略去預設類型聲明.

4. 引入JS庫文件, 文件名須包含庫名稱及版本號及是否為壓縮版, 比如jquery-1.7.1.min.js; 引入插件, 文件名格式為庫名稱+插件名稱, 比如jQuery.cookie.js;

5. 所有編碼均遵循xhtml標準, 標簽 & 屬性 & 屬性命名 必須由小寫字母及下劃線數字組成, 且所有標簽必須閉合; 屬性值必須用雙引號包括;

6. 充分利用無相容性問題的html自身標簽, 比如span, em, strong, optgroup, label,等等; 需要為html元素添加自定義屬性的時候, 首先要考慮下有沒有預設的已有的合適標簽去設置, 如果沒有, 可以使用須以”data-”為首碼來添加自定義屬性,避免使用”data:”等其他命名方式;

7. 語義化html, 如標題根據重要性用h(同一頁面只能有一個h1), 段落標記用p, 列表用ul, 內聯元素中不可嵌套塊級元素;

8. 儘可能減少div嵌套

9. 書寫鏈接地址時, 必須避免重定向,例如:href=http://www.example.com/, 即須在URL地址後面加上“/”;

10. 在頁面中儘量避免使用style屬性,style=”…”;

11. 必須為含有描述性表單元素(input, textarea)添加label

12. 能以背景形式呈現的圖片, 儘量寫入css樣式中;

13. 重要圖片必須加上alt屬性; 給重要的元素和截斷的元素加上title;

14. 給區塊代碼及重要功能(比如迴圈)加上註釋, 方便後臺添加功能;

15. 特殊符號使用: 儘可能使用代碼替代: 比如 <(<) & >(>) & 空格( ) & »(») 等等;

16. 書寫頁面過程中, 請考慮向後擴展性;

17. class & id 參見 css書寫規範.

css書寫規範

1. 編碼統一為utf-8;

2. 協作開發及分工: 根據各個模塊, 同時根據頁面相似程式, 事先寫好大體框架文件, 分配給前端人員實現內部結構&表現&行為; 共用css文件由base.css書寫, 協作開發過程中, 每個頁面請務必都要引入, 此文件包含reset及頭部底部樣式, 此文件不可隨意修改;

3. classid的使用: id是唯一的並是父級的, class是可以重覆的並是子級的, 所以id僅使用在大的模塊上, class可用在重覆使用率高及子級中; id原則上都是由我分發框架文件時命名的, JavaScript預留鉤子的除外;

4. JavaScript預留鉤子的命名, 請以 js_ 起始, 比如: js_hide, js_show;

5. classid命名: 避免使用中文拼音, 儘量使用簡易的單片語合; 總之, 命名要語義化, 簡明化.

7. css屬性書寫順序, 建議遵循: 佈局定位屬性–>自身屬性–>文本屬性–>其他屬性. 此條可根據自身習慣書寫, 但儘量保證同類屬性寫在一起. 屬性列舉: 佈局定位屬性主要包括: display & list-style & position(相應的 top,right,bottom,left) & float & clear visibility overflow; 自身屬性主要包括: width & height & margin & padding & border & background; 文本屬性主要包括:color & font & text-decoration & text-align & vertical-align & white- space & 其他 & content; 我所列出的這些屬性只是最常用到的, 並不代表全部;

8. 書寫代碼前, 考慮並提高樣式重覆使用率;

9. 充分利用html自身屬性及樣式繼承原理減少代碼量, 比如:

定義

ul.list li{position:relative} ul.list li span{position:absolute; right:0}

即可實現日期居右顯示

10. 樣式表中中文字體名, 請務必轉碼成unicode, 以避免編碼錯誤時亂碼;

11. 背景圖片請儘可能使用sprite技術, 減小http請求, 考慮到多人協作開發, sprite按模塊製作;

12. 使用table標簽時(儘量避免使用table標簽), 請不要用width/ height/cellspacing/cellpaddingtable屬性直接定義表現, 應儘可能的利用table自身私有屬性分離結構與表現 , thead,tr,th,td,tbody,tfoot,colgroup,scope; (cellspaingcellpaddingcss控制方法:table{border:0;margin:0;border-collapse:collapse;} table th, table td{padding:0;}, base.css文件中我會初始化表格樣式)

13. 如何可以請少使用相容;

14. png圖片做圖片時, 要求圖片格式為png-8格式,png-8實在影響圖片質量或其中有半透明效果, 請為ie6單獨定義背景:

_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (sizingMethod=crop, src=img/bg.png);

15. 避免相容性屬性的使用, 比如text-shadow || css3的相關屬性;

16. 減少使用影響性能的屬性, 比如position:absolute || float ;

17. 必須為大區塊樣式添加註釋, 小區塊適量註釋;

18. 代碼縮進與格式: 建議單行書寫, 可根據自身習慣, 後期優化會統一處理;

JavaScript書寫規範

1. 文件編碼統一為utf-8, 書寫過程過, 每行代碼結束必須有分號; 原則上所有功能均根據XXX項目需求原生開發, 以避免網上down下來的代碼造成的代碼污染(沉冗代碼 || 與現有代碼衝突 || );

2. 庫引入: 原則上僅引入jQuery, 若需引入第三方庫, 須與團隊其他人員討論決定;

3. 變數命名: 駝峰式命名. 原生JavaScript變數要求是純英文字母, 首字母須小寫, iTaoLun;

jQuery變數要求首字元為’_, 其他與原生JavaScript 規則相同, : _iTaoLun;

, 要求變數集中聲明, 避免全局變數.

4. 類命名: 首字母大寫, 駝峰式命名. ITaoLun;

5. 函數命名: 首字母小寫駝峰式命名. iTaoLun();

6. 命名語義化, 儘可能利用英文單詞或其縮寫;

7. 儘量避免使用存在相容性及消耗資源的方法或屬性, 比如eval_r() & innerText;

8. 後期優化中, JavaScript非註釋類中文字元須轉換成unicode編碼使用, 以避免編碼錯誤時亂碼顯示;

9. 代碼結構明瞭, 加適量註釋. 提高函數重用率;

10. 註重與html分離, 減小reflow, 註重性能.

圖片規範

1. 所有頁面元素類圖片均放入img文件夾, 測試用圖片放於img/demoimg文件夾;

2. 圖片格式僅限於gif || png || jpg;

3. 命名全部用小寫英文字母、數字、 _ 的組合,其中不得包含漢字、空格、特殊字元;儘量用易懂的辭彙, 便於團隊其他成員理解; , 命名分頭尾兩部分, 用下劃線隔開, 比如ad_left01.gif 、btn_submit.gif;

4. 在保證視覺效果的情況下選擇最小的圖片格式與圖片質量, 以減少載入時間;

5. 儘量避免使用半透明的png圖片(若使用, 請參考css規範相關說明);

6. 運用css sprite技術集中小的背景圖或圖標, 減小頁面http請求, 但註意, 請務必在對應的sprite psd源圖中劃參考線, 並保存至img目錄下.

註釋規範

1. html註釋: 註釋格式 , ‘–’只能在註釋的始末位置,不可置入註釋文字區域;

2. css註釋: 註釋格式 ;

3. JavaScript註釋, 單行註釋使用’//這兒是單行註釋’ ,多行註釋使用 ;

開發及測試工具約定

建議使用WebStorm、Aptana、 Dw、 Vim , 亦可根據自己喜好選擇, 但須遵循如下原則:

1. 不可利用IDE的視圖模式“畫”代碼;

2. 不可利用IDE生成相關功能代碼, 比如Dw內置的一些功能js;

3. 編碼必須格式化, 比如縮進;

測試工具: 前期開發僅測試FireFox & IE6 & IE7 & IE8 & IE9 & Opera & Chrome & Safari;

其他規範

1. 開發過程中嚴格按分工完成頁面, 以提高css復用率, 避免重覆開發;

2. 減小沉冗代碼, 書寫所有人都可以看的懂的代碼. 簡潔易懂是一種美德. 為用戶著想, 為伺服器著想.

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.整體縮放 整體縮放可以用在營銷活動頁,營銷活動可能因為設計美觀需求必須使用背景圖片而非背景色,因此需要考慮背景圖適應屏幕大小。開發者可以用320像素的寬度作為基礎寬度(高度可以固定),然後通過計算實際文檔寬度來進行相應縮放。 使用整體縮放佈局開發的項目在載入過程中需要監聽resize事件,代碼如 ...
  • 接著上文線條樣式[js高手之路] html5 canvas系列教程 - 線條樣式(lineWidth,lineCap,lineJoin,setLineDash)繼續. canvas提供兩種輸出文本的方式: strokeText:描邊文本 fillText:填充文本 fillStyle配合fillTe ...
  • 本篇文章是關於覆選框的,有2種形式:1、全選、反選由2個按鈕實現;2、全選、反選由一個按鈕實現。 在實踐中碰到一個問題——check全選失效。解決辦法,使用prop方法代替attr。 這或許是和jQuery版本有關。 ...
  • 上文,寫完弧度與貝塞爾曲線[js高手之路] html5 canvas系列教程 - arcTo(弧度與二次,三次貝塞爾曲線以及線上工具),本文主要是關於線條的樣式設置 lineWidth: 設置線條的寬度,值是一個數值,如lineWidth = 5. 畫3條不同寬度的線條: lineWidth設置弧形 ...
  • 調試代碼之前,我設置了兩個緩存 分別是username和content 在控制台console設置兩個緩存代碼 localStorage.setItem('username','老王')localStorage.setItem('content','類容') 運行下麵代碼一定要先設置這兩個緩存,因為 ...
  • 自己寫了個上傳圖片的子組件,父組件需要獲取到子組件上傳的圖片地址,這裡最好的辦法是給相應的子組件加ref, 父組件在最後提交的時候獲取thi.$ref.avatar.相應數據即可,因為在這裡才能保證圖片已經上傳,否則如果圖片沒上傳,拿到的值一定為空。 ...
  • HTML5學堂-碼匠:本期繼續走入演算法 —— 冒泡排序法。冒泡排序演算法相對簡單,容易上手,穩定性也比較高, 算是一種較好理解的演算法,也是面試官高頻提問的演算法之一。 ...
  • 之前,我寫了一個arc函數的用法:[js高手之路] html5 canvas系列教程 - arc繪製曲線圖形(曲線,弧線,圓形). arcTo: cxt.arcTo( cx, cy, x2, y2, 半徑 ) cx,cy表示控制點的坐標,x2,y2表示結束點的坐標,如果我們想畫一條弧線,需要提供3個 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...