搜尋
首頁web前端html教學編寫靈活、穩定、高品質的HTML和css程式碼規範指南_HTML/Xhtml_網頁製作

黃金定律
永遠遵循同一套編碼規範,不管有多少人共同參與同一專案,一定要確保每一行程式碼都像是同一個人編寫的.

一、語法:
1.用兩個空格來代替製表符(tab);
2.嵌套元素應縮排一次(兩個空格);  
3.對於屬性的定義,確保全部使用雙引號,絕不使用單引號;  
4.不要在自閉合元素的尾部添加斜線--HTML5規範(https://dev. w3.org/html5/spec-author-view/syntax.html#syntax-start-tag)中明確說明這是可選的; 
5.不要省略可選的結束標籤;
6.為每個HTML頁面的第一行添加標準模式的聲明,這樣能確保在每個瀏覽器中有一隻的展現;

二、語言屬性:
根據HTML5規範,建議為HTML根元素指定lang 屬性,從而為文本設置正確的語言.這將有助於語音合成工具確定其應該採用的發音,有助於翻譯工具決定翻譯時應遵守的規則等等.lang 屬性清單:http://www.sitepoint.com/web-foundations/iso-2-letter-language-codes/

三、IE相容模式:  
IE支援透過特定的標籤來決定回執目前頁面所應該採用的IE版本.除非有強烈要求,否則最好是設定為edge mode,從而統治IE採用其所支持的最新的模式.

四、字元編碼:
透過聲明字元編碼,能夠確保瀏覽器快速並容易的判斷頁面內容的渲染方式.這樣做可以避免在HTML中使用字元實體標記,從而全部與文件編碼一致.

五、引入css和JavaScript檔:
根據HTML5規範,再引入css和JavaScript檔案時一般不需要指定type屬性,因為text/css和text/javascript分別是他們的預設值.

六、實用為王: 
盡量遵循HTML標準和語義,但是不要以犧牲實用性為代價.任何時候都要盡量使用最少的標籤並保持最小的複雜度.

七、屬性順序:
HTML屬性應依照下列順序依序排列,確保程式碼的易讀性:
1.class
2.id,name  〜 
3.data-*    
4.src,for,type,href    
5.title,alt    
6.Aria,role    
6.Aria,role『在首位.

八、減少標籤的數量
編寫HTML程式碼時,盡量避免多餘的父元素.很多時候,這需要迭代和重構來實現.

九、JavaScript產生的標籤
透過JavaScript產生的標籤讓內容變得不易找到、編輯,並且境地性能.能避免是盡量避免.

十、CSS語法:
1.用兩個空格來代替製表符(tab);  
2.為選擇器分組時,將單獨的選擇器單獨放在一行;  
3.為了代碼的易讀性,在每個聲明塊的左花括號錢添加一個空格;  
4.聲明塊的右花括號應該單獨成行;  
5.每條宣告語句的: 後面應該插入一個空格;  
6.為了獲得更準確的錯誤報告,每條聲明都應該獨佔一行;  
7.所有聲明語句都應該以分號結尾,最後一條聲明語句後面的分號是可選的,但是如果省略這個分號,代碼可能更容易出;  
8.對於以逗號分隔的屬性值,每個逗號後面都應該插入一個空格;  
9 .對於屬性值或顏色參數,省略小於1的小數前面的0(例如.5代替0.5);  
10.十六進位值應該全部小寫,例如:#fff,盡量使用簡寫形式的十六進位值,例如用#fff代替#ffffff;  
11.為選擇其中的屬性加上雙引號,例如input[type="text"];  
12.避免為0 值指定單位,例如用margin:0 代替margin:0px.

十一、聲明順序:

相關的屬性宣告應該歸為一組,並且按照下面的順序排列:   

1.positioning(position: absolute; top: 0; bottom: 0; right: 0; left: 0; z-index: 100;);   
2.box model(display: block; float: left ; width: 100px; height: 100px;);   
3.typographic(font: normal 13px "Microsoft YaHei"; line-height: 1.5em; color: #333; text-align:center]; 4.visual(background: yellow; border: 1px solid #c00; border-radius: 3px; opacity: 1; );
   
由於定位(positioning)可以從正常的文檔流中移除元素,並且還能覆蓋盒模型(box model)相關的樣式,因此排在首位.盒模型排在第二位,因為他決定了組建的尺寸和位置.其他屬性知識影響組建的內部(inside)或者是不影響前兩組屬性,因此排在後面.

十二、不要使用@import  
與標籤相比,@import指令要慢很多,不光增加了額外的請求次數,還會導致不可預料的問題.替代辦法有一下幾種:
1.使用多個元素;     
2.使用多個元素;     
2.透過sass或less類似的css預處理器將多個css檔案便以為一個檔案;     

3.透過一個檔案;     

3.透過rails、jekyll 」系統中提供過css檔案合併功能.
十三、媒體查詢(media query)的位置

將媒體查詢盡可能放在相關規則的附近.不要將他們打包放在一個單一樣式文件中或放在文檔底部.
十四、帶前綴的屬性: 

當使用特定廠商的帶前綴的屬性時,通過鎖緊的方式,讓每個屬性的值在垂直方向對齊,這樣方便多行編輯.例如:    
CSS Code
複製內容到剪貼簿
  1. .selector {        
  2.   
  3.         -webkit-box-shadow: 0 1px  );            
  4.   
  5.             box-shadow: 0 1px 0,0,.15);           
  6. }   
  7.   
  8. 十五、單行規則聲明:
  對於值包含一條聲明的樣式,為了易讀性和便於快速編輯,建議將語句放在同一行.對於帶有多個聲明的樣式,還是應將聲明分為多行.這樣做的關鍵因素是為了錯誤檢測.例如css校驗器之處在180行有語法錯誤,如果是單行單條聲明,你就不會忽略這個錯誤,如果是單行多條聲明的話,你就要仔細分析避免漏掉錯誤了.

十六、Less和Sass中的嵌套
 避免非必要的嵌套.這是因為雖然你可以使用嵌套,但是並不意味著應該使用嵌套.只有在必須將樣式限制在父元素內(也就是後代選擇器),並且存在多個需要嵌套的元素師才能使用嵌套.

十七、註釋:
程式碼是由人編寫並維護的.請確保你的程式碼能夠自描述、註解良好並且易於他人理解.好的程式碼註解能夠傳遞上下文關係和程式碼目的;

不要簡單地重申組件或class名稱;

對於較長的註釋,務必書寫完整的句子,對於一般性的註釋,可以書寫簡介的短語.
十八、class命名

class名稱中只能出現謝小字元和破折號(不是底線也不是駝峰命名法).破折號應當用於相關class的命名(類似命名空間,例如.btn和.btn-danger)

避免過度任意的簡寫. .btn代表button,但是.s不能表達任何意思;  

class名應該盡可能短,並且意義明確;  使用有意義的名稱,使用有組織的或目的明確的名稱,不要使用表現形式的名稱;  基於最近的class或基本class作為新class的前綴;  
使用.js-* class來識別行為(與樣式相對),並且不要將這些class包含到css文件中;  
在為sass和less變量命名時也可以參考上面列出的各項規範.


十九、選擇器

對於通用元素使用class,這樣利於渲染性能的最佳化;  

對於經常出現的組件,避免使用屬性選擇器(例如:[class^ ="···"]),瀏覽器的性能會受到這些因素的影響;  

選擇器盡可能短,並且盡量限制組成選擇器的元素個數,建議不要超過3個;  只有在必要的時候才將class限制在最近的父元素內.

二十、代碼組織:

以組成為單位組織代碼段;  

指定一致的註釋規範;  

使用一致的空白符將代碼分隔成塊,這樣利於掃描較大的文件;  如果使用了多個css文件,將其按照組件而不是頁面的形式拆分,因為頁面會被重組,而組件只會被移動.
以上就是本文的全部內容,希望對大家寫出規範、靈活、穩定、高品質的HTML和css程式碼有所幫助。

原文:
http://www.cnblogs.com/codinganytime/p/5258223.html

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?Mar 04, 2025 pm 12:32 PM

公眾號網頁更新緩存,這玩意兒,說簡單也簡單,說複雜也夠你喝一壺的。你辛辛苦苦更新了公眾號文章,結果用戶打開還是老版本,這滋味,誰受得了?這篇文章,咱就來扒一扒這背後的彎彎繞繞,以及如何優雅地解決這個問題。讀完之後,你就能輕鬆應對各種緩存難題,讓你的用戶始終體驗到最新鮮的內容。先說點基礎的。網頁緩存,說白了就是瀏覽器或者服務器為了提高訪問速度,把一些靜態資源(比如圖片、CSS、JS)或者頁面內容存儲起來。下次訪問時,直接從緩存裡取,不用再重新下載,速度自然快。但這玩意兒,也是個雙刃劍。新版本上線,

如何使用HTML5表單驗證屬性來驗證用戶輸入?如何使用HTML5表單驗證屬性來驗證用戶輸入?Mar 17, 2025 pm 12:27 PM

本文討論了使用HTML5表單驗證屬性,例如必需的,圖案,最小,最大和長度限制,以直接在瀏覽器中驗證用戶輸入。

如何高效地在網頁中為PNG圖片添加描邊效果?如何高效地在網頁中為PNG圖片添加描邊效果?Mar 04, 2025 pm 02:39 PM

本文展示了使用CSS為網頁中添加有效的PNG邊框。 它認為,與JavaScript或庫相比,CSS提供了出色的性能,詳細介紹瞭如何調整邊界寬度,樣式和顏色以獲得微妙或突出的效果

HTML5中跨瀏覽器兼容性的最佳實踐是什麼?HTML5中跨瀏覽器兼容性的最佳實踐是什麼?Mar 17, 2025 pm 12:20 PM

文章討論了確保HTML5跨瀏覽器兼容性的最佳實踐,重點是特徵檢測,進行性增強和測試方法。

< datalist>的目的是什麼。 元素?< datalist>的目的是什麼。 元素?Mar 21, 2025 pm 12:33 PM

本文討論了html< datalist>元素,通過提供自動完整建議,改善用戶體驗並減少錯誤來增強表格。Character計數:159

> gt;的目的是什麼 元素?> gt;的目的是什麼 元素?Mar 21, 2025 pm 12:34 PM

本文討論了HTML< Progress>元素,其目的,樣式和與< meter>元素。主要重點是使用< progress>為了完成任務和LT;儀表>對於stati

我如何使用html5< time> 元素以語義表示日期和時間?我如何使用html5< time> 元素以語義表示日期和時間?Mar 12, 2025 pm 04:05 PM

本文解釋了HTML5< time>語義日期/時間表示的元素。 它強調了DateTime屬性對機器可讀性(ISO 8601格式)的重要性,並在人類可讀文本旁邊,增強Accessibilit

< meter>的目的是什麼。 元素?< meter>的目的是什麼。 元素?Mar 21, 2025 pm 12:35 PM

本文討論了HTML< meter>元素,用於在一個範圍內顯示標量或分數值及其在Web開發中的常見應用。它區分了< meter>從< progress>和前

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器