1. 程式人生 > >聊聊HTML靜態頁面編碼規範和前端程式碼重構

聊聊HTML靜態頁面編碼規範和前端程式碼重構

    彪悍的人生不需要解釋,彪悍的程式碼不需要註釋!作為程式猿,工作中我們都要涉及到與團隊合作,為了讓團隊合作的效率提高,我們在寫程式碼的時候都應該講究規範,比如註釋,html程式碼的嵌入規則,class命名的規範等等,一段漂亮的程式碼猶如詩歌,有聲有色,井然有序的程式語言,也許真的就連註釋都省了(當然為了後期維護方便還是應該記得添加註釋的)。

      我們在開發前端靜態頁面的的時候,都應該認真的規劃好html的結構,一段好的html程式碼,不僅有利於維護和瀏覽器的正確渲染,更有利於搜尋引擎的良好收錄,我們應該帶著SEO的思維把html頁面結構設計好,寫出漂亮、整齊、語義化更強的前端頁面。下面我們就從以下幾個方面來談談程式碼的規範吧:

一、html標籤的巢狀規則

html編碼規範

XHTML的標籤有許多:div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、span、 strong……我們在運用這些標籤構建頁面結構的時候,雖然說我們是可以將它們無限巢狀的,但是,巢狀也需要有一定規則,不能任由自己的個人習慣胡亂巢狀,那麼,html標籤的巢狀規則有哪些呢?

(一)、HTML 標籤包括 塊級元素(block)、內嵌元素(inline)

1、塊級元素

一般用來搭建網站架構、佈局、承載內容……它包括以下這些標籤:

address、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h6、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul

2、內嵌元素

一般用在網站內容之中的某些細節或部位,用以“強調、區分樣式、上標、下標、錨點”等等,下面這些標籤都屬於內嵌元素:

a、abbr、acronym、b、bdo、big、br、cite、code、dfn、em、font、i、img、input、kbd、label、q、s、samp、select、small、span、strike、strong、sub、sup、textarea、tt、u、var 

(二)、HTML 標籤的巢狀規則

1. 塊元素可以包含內聯元素或某些塊元素,但內聯元素卻不能包含塊元素,它只能包含其它的內聯元素:

<div><h1></h1><p></p></div> —— 對

<a href=”#”><span></span></a> —— 對

<span><div></div></span> —— 錯

2. 塊級元素不能放在<p>裡面:

<p><ol><li></li></ol></p> —— 錯

<p><div></div></p> —— 錯

3. 有幾個特殊的塊級元素只能包含內嵌元素,不能再包含塊級元素,這幾個特殊的標籤是:

h1、h2、h3、h4、h5、h6、p、dt

4. li 內可以包含 div 標籤 —— 這一條其實不必單獨列出來的,但是網上許多人對此有些疑惑,就在這裡略加說明:

li 和 div 標 籤都是裝載內容的容器,地位平等,沒有級別之分(例如:h1、h2 這樣森嚴的等級制度^_^),要知道,li 標籤連它的父級 ul 或者是 ol 都 可以容納的,為什麼有人會覺得 li 偏偏容納不下一個 div 呢?別把 li 看得那麼小氣嘛,別看 li 長得挺瘦小,其實 li 的胸襟很大。

5. 塊級元素與塊級元素並列、內嵌元素與內嵌元素並列:

<div><h2></h2><p></p></div> —— 對

<div><a href=”#”></a><span></span></div> —— 對

<div><h2></h2><span></span></div> —— 錯

二、html編碼規範

1.HTML doctype

首先,我們應該為每個 HTML 頁面的第一行新增標準模式(standard mode)的宣告,這樣能夠確保在每個瀏覽器中擁有一致的展現。

2.字元編碼

通過明確宣告字元編碼,能夠確保瀏覽器快速並容易的判斷頁面內容的渲染方式。這樣做的好處是,可以避免在 HTML 中使用字元實體標記(character entity),從而全部與文件編碼一致(一般採用 UTF-8 編碼)。

3.引入 CSS 和 JavaScript 檔案

根據 HTML5 規範,在引入 CSS 和 JavaScript 檔案時一般不需要指定 type 屬性,因為 text/css 和 text/javascript 分別是它們的預設值。

例如:

<link rel="stylesheet" href="code-guide.css">
<script src="code-guide.js"></script>

4.減少標籤的數量

任何時候我們都應該儘量使用最少的標籤並保持最小的複雜度,編寫 HTML 程式碼時,儘量避免多餘的父元素。很多時候,這需要迭代和重構來實現。

5.屬性順序

在編寫HTML 屬性時我們應當按照以下給出的順序依次排列,確保程式碼的易讀性,提高團隊合作開發效率。

  • class

  • idname

  • data-*

  • srcfortypehref

  • titlealt

  • aria-*role

幾乎每個html標籤我們都有可能定義class,class 用於標識高度可複用元件,因此應該排在首位。id 用於標識具體元件,應當謹慎使用(例如,頁面內的書籤),因此排在第二位。

6.帶著SEO優化的思維編寫

做好一個網站,我們肯定是希望易於推廣出去,在編寫html程式碼的時候我們就應該編寫利於搜尋引擎索引的程式碼,例如我們應該給每個a標籤加上title屬性,應該為每個img標籤加上alt屬性等等