HTML5的標記可以省略,在不影響頁面佈局的情況下,可以節省網頁體積大小。減少代碼量。
某些標記可以省略。
省略標記的開始標記並不意味著標記不存在,它是隱含的,但它仍然存在。一個HTML檔案總是有一個根標記HTML,即使字串<html>沒有出現在頁面標記中的任何地方。
HTML標記的開始標記可以省略,如果HTML標記內的第一個標記不是註解。
HTML標記的結束標記可以省略如果HTML標記不是隨後立即跟隨一條註解。
head標記的開始標記可以省略,如果該標記是空的,或者head內的標記首先是一個標記而不是註釋。
head標記的結束標記可以省略,如果head標記後沒有立即跟隨空格字元或註釋。
一個body標記的開始標記可以省略,如果該標記是空的,或者如果在body標記的第一個標記是不是一個空格字元或註釋,但如果body內部標記的第一個標記是一個腳本或樣式標記,則不可以省略body標記。
一個body標記的結束標記可以省略,如果body標記不是隨後立即跟隨註解。
li標記的結束標記可以省略,如果li標記緊接著另一個li標記或有沒有父標記更多內容。
一個DT標記的結束標記可以省略,如果dt的標記是緊接著另一個dt的標記或一個dd標記之後。
dd標記的結束標記可以省略,如果dd緊跟著另一個dd標記或dt標記,或者如果隨後沒有父標記的更多的內容。
p標記的結束標記可以省略,如果p標記後面跟著一個address, article, aside, blockquote, dir, div, dl, fieldset, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup , hr, menu, nav, ol, p, pre, section, table, ul,標記,或者如果沒有更多的父標記的內容且父標記不是a標記。
一個RT標記的結束標記可以省略,如果rt的標記緊跟著RT或RP標記,或者是沒有父標記的更多內容。
一個rp標記的結束標記可以省略,如果rp標記緊跟著RT或RP標記,或是沒有父標記的更多內容。
一個optgroup標記的結束標記可以省略,如果optgroup標記緊跟著另一個optgroup標記,或是沒有父標記更多的內容。
一個option標記的結束標記可以省略,如果option標記緊跟著另一個option標記,或是緊接在一個optgroup標記,或是後面沒有父標記的更多內容。
COLGROUP標記的開始標記可以省略,如果COLGROUP標記內的第一個標記是一個col標記,或者如果標記後未跟著另一COLGROUP標記,且其結束標記已被省略。 (COLGROUP不能被忽略,如果該標記是空的。)
在COLGROUP標記的結束標記可以省略,如果不立即COLGROUP標記是由一個空格字元或評論之後。
thead標記的結束標記可以省略,如果thead標記緊跟著一個tbody或tfoot標記。
tbody標記的開始標記可以省略,如果裡面的tbody標記首先是一個TR標記,如果該標記後沒有己被省略掉結束標記的tbody,thead,tfoot標記。 (它不能被忽略,如果該標記是空的。)
tbody標記的結束標記可以省略,如果tbody標記緊跟著一個tbody或TFOOT標記,或者如果隨後沒有父標記更多的內容。
TFOOT標記的結束標記可以省略,如果TFOOT標記緊跟著tbody標記,或者如果隨後沒有父標記更多的內容。
一個TR標記的結束標記可以省略,如果TR標記緊跟著另一個TR標記,或者如果隨後沒有父標記更多的內容。
一個TD標記的結束標記可以省略,如果TD標記緊跟著td,th標記,或者如果隨後沒有父標記更多的內容。
一個th標記的結束標記可以省略,如果th標記緊跟著td,th標記,或者如果隨後沒有父標記更多的內容。
但是,如果開始標記有任意一個或多個屬性,它就不能省略。
英文原稿: http://www.w3.org/TR/2010/WD-html5-20100624/syntax.html#optional-tags
資料來源: http://www.netroby.com/翻譯自w3c的工作案,心自逍遙關注WEB開發尖端技術標準,深入WEB企業應用開發。
感謝W3C的投稿