HTML5中的可以全部省略的標記元素
HTML5中html head body標簽是可以省略的,html5中省略寫html標簽head標簽body標簽是合法的,那么我們在寫規范的html5文檔時,html標簽head標簽body標簽有沒有必要寫上去呢?
例如:我們可以創造這樣一個合法的html5文檔。
<!DOCTYPE html> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Page Title</title> <link rel="stylesheet" type="text/css" href="css/reset.css"> <script src="js/head_script.js"></script><!-- this script will be in head //--> <div>Some html</div> <!-- here body starts //--> <script src="js/body_script.js"></script>
在這個文檔中我們省略了html標簽head標簽body標簽,瀏覽器會幫助我們生成我們沒有寫明的標簽元素。例如FireFox瀏覽器就會正確解析:

W3C組織推薦的說,寫上這些標簽是很有必要的。現在web頁面上很少有這方面的實踐,但是寫上這些標簽還是很有必要的。
HTML5中html標簽head標簽body標簽應該省略嗎
HTML5中html標簽head標簽body標簽應該省略嗎?W3C組織推薦的說,寫上這些標簽是很有必要的。原因如下:
盡管HTML5中html標簽head標簽body標簽是被允許省略的,省略過后瀏覽器在解析這些代碼的時候會自動幫我們加上這些隱藏的標簽元素。但是這也是寫上這些標簽元素的根本原因,即瀏覽器總是在試圖創建與現有網頁一致的文檔結構,而且這些標簽元素在很早的HTML版本中是沒有被定義的,這些html標簽head標簽body標簽是在HTML2.0時創建的,因此,當這些標簽被省略或者忘記寫的時候,瀏覽器總是要去推斷這些標簽的存在,以及推斷這些標簽怎么存在。
那么此時問題就出來了,不同的瀏覽器解析省略了html標簽head標簽body標簽的HTML文檔時,可能會得到不同的DOM結構,相信寫JavaScript遍歷DOM結構的程序員是對這種不同瀏覽器產生不同DOM結構有切膚之痛的。例如:
在最新的ie中有這樣一個BUG,在ie9中也還存在。
<!DOCTYPE html> <title>Test case</title> <form action='#'> <input name="var1"> </form>
在其他瀏覽器(如FF)中你會得到

在ie9中你會得到

總結
HTML5中html head body標簽應該省略嗎?我們有沒有必要再HTML5文檔中寫html head body標簽?歡迎高手給予答案。
