1. 程式人生 > >前端開發規範手冊:(一)基本原則

前端開發規範手冊:(一)基本原則

name ges rop scrip 有效 object sel 代碼 charset

1、結構、樣式、行為分離

盡量確保文檔和模版只包含HTML結構,樣式都放到樣式表中,行為都放到腳本裏。

2、縮進

統一兩個空格縮進(總之縮進統一即可),不要使用Tab鍵或者Tab和空格混搭。

3、文件編碼

使用不帶BOM的UTF-8編碼。

  • 在HTML中指定編碼
<meta charset="utf-8">
  • 無需使用 @charset 指定樣式表的編碼,它默認為 UTF-8 (參考 @charset);

4、一律使用小寫字母

<!-- Recommended --><img src="google.png" alt="Google">
<!-- Not recommended --><A HREF="/">Home</A>
/* Recommended */color: #e5e5e5;/* Not recommended */color: #E5E5E5;

5、省略外鏈資源URL協議部分

省略外鏈資源(圖片及其它媒體資源)URL中的http/https協議,使URL成為相對地址,避免Mixed Content問題,減小文件字節數。

其他協議(ftp等)的URL不省略。

<!-- Recommended --><script src="//www.w3cschool.cn/statics/js/autotrack.js"
></script><!-- Not recommended --><script src="http://www.w3cschool.cn/statics/js/autotrack.js"></script>
/* Recommended */
.example {  background: url(//www.google.com/images/example);}
/* Not recommended */
.example {  background: url(http://www.google.com/images/example);}

6、統一註釋

通過配置編輯器,可以提供快捷鍵來輸出一只認可的註釋模式。

 (1)HTML 註釋

  • 模塊註釋

<!-- 文章列表註釋 -->
<div class="article-list">...</div>
  • 區塊註釋
<!--
@name: Drop Down Menu
@description: Style of top bar drop down menu.
@author: Ashu([email protected])
-->

 (2)CSS 註釋

  組件塊和子組件塊以及聲明塊之間使用一空行分隔,子組件塊之間三空行分隔;

/* ==========================================================================
   組件塊
 ============================================================================ */

/* 子組件塊 ============================================================================ */
.selector { padding: 15px; margin-bottom: 15px;}

/* 子組件塊 ============================================================================ */
.selector-secondary { display: block; /* 註釋*/}
.selector-three { display: span;}

 (3)JavaScript 註釋

  • 單行註釋

  必須獨占一行

  // 後跟一個空格,縮進與下一行被註釋說明的代碼一致。

  • 多行註釋

  避免使用 /*...*/ 這樣的多行註釋。有多行註釋內容時,使用多個單行註釋。

  • 函數/方法註釋
  • 函數/方法註釋必須包含函數說明,有參數和返回值時必須使用註釋標識。;
  • 參數和返回值註釋必須包含類型信息和說明;
  • 當函數是內部函數,外部不可訪問時,可以使用 @inner 標識;
/**
 * 函數描述
 *
 * @param {string} p1 參數1的說明
 * @param {string} p2 參數2的說明,比較長
 *     那就換行了.
 * @param {number=} p3 參數3的說明(可選)
 * @return {Object} 返回值描述
 */
function foo(p1, p2, p3) {
  var p3 = p3 || 10;
return { p1: p1, p2: p2, p3: p3 }; }
  • 文件註釋

  文件註釋用於告知這個文件的讀者,這個文件中包含哪些東西。

  應該提供文件的大體內容、作者、依賴關系和兼容性信息。

  如下:

/**
 * @fileoverview Description of file, its uses and information
 * about its dependencies.
 * @author [email protected] (Firstname Lastname)
 * Copyright 2015 Meizu Inc. All Rights Reserved.
 */

  

7、代碼驗證

  • 使用 W3C HTML Validator 來驗證你的HTML代碼有效性;
  • 使用 W3C CSS Validator 來驗證你的CSS代碼有效性;

  代碼驗證不是最終目的,真的目的在於讓開發者在經過多次的這種驗證過程後,能夠深刻理解到怎樣的語法或寫法是非標準和不推薦的,即使在某些場景下被迫要使用非標準寫法,也可以做到心中有數。

前端開發規範手冊:(一)基本原則