HTML規(guī)范

HTML是描述網(wǎng)頁結(jié)構(gòu)的超文本標記語言,HTML規(guī)范能夠使HTML代碼風格保持一致碧浊,使得HTML更容易理解和維護。本文將詳細介紹HTML規(guī)范

整體結(jié)構(gòu)

【頁面頭部】

1、文件應(yīng)以<!DOCTYPE...>首行頂格開始退唠,推薦使用<!DOCTYPE html>

<!DOCTYPE html>

2、必須聲明文檔的編碼charset荤胁,且與文件本身編碼保持一致瞧预,指定字符編碼的 meta 必須是 head 的第一個直接子元素。推薦使用UTF-8編碼

<meta charset="utf-8">

3仅政、根據(jù)頁面內(nèi)容和需求填寫適當?shù)膋eywords和description

<meta name="description" content="不超過150個字符">
<meta name="keywords" content="">

4垢油、頁面title是不可缺少的一項,title 必須作為 head 的直接子元素圆丹,并緊隨 charset 聲明之后

<head>
    <meta charset="UTF-8">
    <title>頁面標題</title>
</head>

【資源引入】

1滩愁、保證 favicon 可訪問

<link rel="shortcut icon" href="path/to/favicon.ico">

2、引入 CSS 和 JavaScript 時無須指明 type 屬性

3辫封、引入 CSS 時必須指明 rel="stylesheet"

<link rel="stylesheet" href="page.css">

4硝枉、使用link將css文件引入,并置于head中倦微;使用script將js文件引入妻味,并置于body底部

5、移動環(huán)境或只針對現(xiàn)代瀏覽器設(shè)計的 Web 應(yīng)用璃诀,如果引用外部資源的 URL 協(xié)議部分與頁面相同弧可,建議省略協(xié)議前綴。這是因為使用 protocol-relative URL 引入 CSS,在 IE7/8 下棕诵,會發(fā)兩次請求裁良。是否使用 protocol-relative URL 應(yīng)充分考慮頁面針對的環(huán)境

<script src="http://s1.bdstatic.com/jquery.js"></script>

【結(jié)構(gòu)優(yōu)化】

1、盡量遵循 HTML 標準和語義校套,但是不要以犧牲實用性為代價价脾。任何時候都要盡量使用最少的標簽并保持最小的復(fù)雜度

2、結(jié)構(gòu)順序和視覺順序基本保持一致笛匙,按照從上至下侨把、從左到右的視覺順序書寫HTML結(jié)構(gòu)。有時為了便于搜索引擎抓取妹孙,也會將重要內(nèi)容在HTML結(jié)構(gòu)順序上提前

3秋柄、結(jié)構(gòu)、表現(xiàn)蠢正、行為三者分離骇笔,避免內(nèi)聯(lián)

4、每一個塊級元素都另起一行嚣崭,每一行都使用Tab縮進對齊(head和body的子元素不需要縮進)笨触。刪除冗余的行尾空格

5、對于內(nèi)容較為簡單的表格雹舀,建議將tr寫成單行

6芦劣、可以在大的模塊之間用空行隔開,使模塊更清晰

【語義化】

瀏覽器會根據(jù)標簽的語義給定一個默認的樣式说榆。判斷網(wǎng)頁標簽語義化是否良好的一個簡單方法:去掉樣式虚吟,看網(wǎng)頁結(jié)構(gòu)是否組織良好有序,是否仍然有很好的可讀性

1娱俺、盡可能少地使用無語義標簽span和div

2稍味、在語義不明顯废麻,既可以使用p也可以使用div的地方荠卷,盡量用p

3、在既可以使用div也可以使用section的地方烛愧,盡量用section

4油宜、不要使用純樣式標簽,如b怜姿、u等慎冤,而改用CSS設(shè)置

代碼格式

【縮進】

使用2個空格代替1個Tab(大多數(shù)編輯器中可設(shè)置)

<ul>
    <li>first</li>
    <li>second</li>
</ul>

【命名】

1、class 必須單詞全字母小寫沧卢,單詞間以 - 分隔

2蚁堤、class 必須代表相應(yīng)模塊或部件的內(nèi)容或功能,不得以樣式信息進行命名

<!-- good -->
<div class="sidebar"></div>

<!-- bad -->
<div class="left"></div>

3但狭、同一頁面披诗,應(yīng)避免使用相同的 name 與 id撬即。因為IE7-瀏覽器會混淆元素的 id 和 name 屬性, document.getElementById 可能獲得不期望的元素呈队。所以在對元素的 id 與 name 屬性的命名需要非常小心

【標簽】

1剥槐、標簽名必須使用小寫字母

2、對于無需自閉合的標簽宪摧,不需要自閉合

3粒竖、對 HTML5 中規(guī)定允許省略的閉合標簽,不允許省略閉合標簽

4几于、HTML 標簽的使用應(yīng)該遵循標簽的語義蕊苗,且要符合標簽嵌套規(guī)則

<!-- good -->
<p>Hello StyleGuide!</p>
<!-- bad -->
<P>Hello StyleGuide!</P>

<!-- good -->
<input type="text" name="title">
<!-- bad -->
<input type="text" name="title" </>

<!-- good -->
<ul>
    <li>first</li>
    <li>second</li>
</ul>
<!-- bad -->
<ul>
    <li>first
    <li>second
</ul>

【注釋】

采用類似標簽閉合的寫法,與HTML統(tǒng)一格式沿彭;注釋文案兩頭空格岁歉,與CSS注釋統(tǒng)一格式

開始注釋:(文案兩頭空格)

結(jié)束注釋:(文案前加“/”符號,類似標簽的閉合)

允許只有開始注釋

<!-- 頭部 -->
<div class="g-hd">
    <!-- LOGO -->
    <h1 class="m-logo"><a href="#">LOGO</a></h1>
    <!-- /LOGO -->
    <!-- 導(dǎo)航 -->
    <ul class="m-nav">
        <li><a href="#">NAV1</a></li>
        <li><a href="#">NAV2</a></li>
        <!-- 更多導(dǎo)航項 -->
    </ul>
    <!-- /導(dǎo)航 -->
</div>

<!-- /頭部 -->

【屬性】

1膝蜈、屬性和值全部小寫

2锅移、屬性值必須用雙引號包圍

3、布爾類型的屬性非剃,建議不添加屬性值

4备绽、自定義屬性建議以 xxx- 為前綴鬓催,推薦使用 data-

5、可以省略style標簽和script標簽的type屬性

<!-- good -->
<table cellspacing="0">...</table>
<!-- bad -->
<table cellSpacing="0">...</table>

<!-- good -->
<script src="esl.js"></script>
<!-- bad -->
<script src='esl.js'></script>
<script src=esl.js></script>

【屬性順序】

HTML 屬性應(yīng)該按照特定的順序出現(xiàn)以保證易讀性

id
class
name
data-xxx
src, for, type, href
title, alt
aria-xxx, role
 

特殊元素

【圖片】

1倍靡、禁止 img 的 src 取值為空塌西,否則會導(dǎo)致部分瀏覽器重新加載一次當前頁面

2筝尾、為圖片添加 alt 屬性,提高圖片加載失敗時的用戶體驗

3站辉、避免為 img 添加不必要的 title 屬性饰剥,多余的 title 影響看圖體驗捐川,并且增加了頁面尺寸

4、為圖片添加 width 和 height 屬性古沥,以避免頁面抖動


<img src="#" alt="#" width="#" height="#">

5岩齿、有下載需求的圖片采用 img 標簽實現(xiàn)盹沈,無下載需求的圖片采用 CSS 背景圖實現(xiàn)

產(chǎn)品 logo、用戶頭像做裙、用戶產(chǎn)生的圖片等有潛在下載需求的圖片肃晚,以 img 形式實現(xiàn)关串,能方便用戶下載

無下載需求的圖片,比如:icon晋修、背景墓卦、代碼使用的圖片等趴拧,盡可能采用 css 背景圖實現(xiàn)

【表單】

1、有文本標題的控件使用 label 標簽將其與其標題相關(guān)聯(lián)。最好將控件置于 label 內(nèi)屁倔,以減少不必要的 id


<label><input type="checkbox" name="confirm" value="on"> 我已確認上述條款</label>

2、使用 button 元素時必須指明 type 屬性值往衷。因為button 元素的默認 type 為 submit席舍,如果被置于 form 元素中哮笆,點擊后將導(dǎo)致表單提交

<button type="submit">提交</button>
<button type="button">取消</button>

3、在針對移動設(shè)備開發(fā)的頁面時福铅,根據(jù)內(nèi)容類型指定輸入框的 type 屬性项阴,能獲得友好的輸入體驗

<input type="date">

【多媒體】

1滑黔、在支持 HTML5 的瀏覽器中優(yōu)先使用 audio 和 video 標簽來定義音視頻元素环揽,并使用退化到插件的方式來對多瀏覽器進行支持

<audio controls>
    <source src="audio.mp3" type="audio/mpeg">
    <source src="audio.ogg" type="audio/ogg">
    <object width="100" height="50" data="audio.mp3">
        <embed width="100" height="50" src="audio.swf">
    </object>
</audio>

<video width="100" height="50" controls>
    <source src="video.mp4" type="video/mp4">
    <source src="video.ogg" type="video/ogg">
    <object width="100" height="50" data="video.mp4">
        <embed width="100" height="50" src="video.swf">
    </object>
</video>

2撞芍、只在必要的時候開啟音視頻的自動播放

一個不是計算機專業(yè)的理科生跨扮,轉(zhuǎn)行學前端

如果你也有一個編程夢,這是咱們的前端學習QQ群:784-783-012

(在線學習帝嗡,8個月時間璃氢,目前就業(yè),廣州工作巢寡,月薪16k)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抑月,一起剝皮案震驚了整個濱河市谦絮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌性锭,老刑警劉巖叫胖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓮增,死亡現(xiàn)場離奇詭異钉赁,居然都是意外死亡你踩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門吩谦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來式廷,“玉大人滑废,你說我怎么就攤上這事蠕趁⌒凉荩” “怎么了昙篙?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵苔可,是天一觀的道長硕蛹。 經(jīng)常有香客問我醇疼,道長秧荆,這世上最難降的妖魔是什么乙濒? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任颁股,我火速辦了婚禮甘有,結(jié)果婚禮上葡缰,老公的妹妹穿的比我還像新娘泛释。我一直安慰自己,他們只是感情好间影,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布茄茁。 她就那樣靜靜地躺著魂贬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪裙顽。 梳的紋絲不亂的頭發(fā)上付燥,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音锦庸,去河邊找鬼机蔗。 笑死,一個胖子當著我的面吹牛甘萧,可吹牛的內(nèi)容都是我干的萝嘁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扬卷,長吁一口氣:“原來是場噩夢啊……” “哼牙言!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起欢伏,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤葛假,失蹤者是張志新(化名)和其女友劉穎抱究,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡杂彭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年团秽,在試婚紗的時候發(fā)現(xiàn)自己被綠了踪栋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嚷掠,到底是詐尸還是另有隱情不皆,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站渡蜻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一叫惊、第九天 我趴在偏房一處隱蔽的房頂上張望抡草。 院中可真熱鬧称勋,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春愕够,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哄尔,地道東北人假消。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像富拗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子酬滤,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容