自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

HTML 5標(biāo)準(zhǔn)學(xué)習(xí)入門之文檔結(jié)構(gòu)

開發(fā) 前端
因?yàn)槭荴ML,文檔變得嚴(yán)格了很多,也因?yàn)槭荴ML,其可讀性和規(guī)范性提高了不少。但最終,我們始終要在HTML的寬容性和XML的規(guī)范性之間找到最佳的平衡點(diǎn),一味地追求極端始終是一個(gè)錯(cuò)誤。

51CTO推薦專題:HTML 5 下一代Web開發(fā)標(biāo)準(zhǔn)詳解

說起HTML的結(jié)構(gòu),很多人都能說得頭頭是道,一般來說答案可能是這樣的:

一個(gè)DOCTYPE,一個(gè)html,里面有head和body元素。

這當(dāng)然不能說是不正確的,但是如果問到一個(gè)最小的HTML源文件必須有哪一些東西的話,恐怕很少有人能正確地做出回答。

先來回答一下這個(gè)問題,一個(gè)最簡(jiǎn)的HTML5源碼文件需要的內(nèi)容如下:

  1. <!DOCTYPE html> 

是的,就這樣,一個(gè)字符不多,一個(gè)字符不少,除了大小寫可任意變化外,其他的任何內(nèi)容都是不能變動(dòng)的。

那么究竟是怎么樣的規(guī)則,導(dǎo)致一個(gè)最簡(jiǎn)的源碼文件必須有doctype聲明呢?根據(jù)標(biāo)準(zhǔn),一個(gè)HTML文檔有如下內(nèi)容組成(嚴(yán)格按照順序):

一個(gè)BOM標(biāo)記,且這個(gè)BOM標(biāo)記必須為U+FEFF。

  • · 0-n個(gè)空格或注釋。
  • · DOCTYPE聲明。
  • · 0-n個(gè)空格或注釋。
  • · 一個(gè)HTML元素。
  • · 0-n個(gè)空格或注釋。

這里存在著一些和HTML4的不同,一個(gè)HTML4的最簡(jiǎn)源碼文件是這樣的:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
  2.                       "http://www.w3.org/TR/html4/loose.dtd"> 
  3. <title>這里是標(biāo)題</title> 

兩者的區(qū)別是顯而易見的:

  • HTML5把DOCTYPE修改為更簡(jiǎn)單的<!DOCTYPE html>,這個(gè)已經(jīng)眾所周知了。
  • 在HTML4中多了一個(gè)<title>標(biāo)簽。

這里的重點(diǎn)就是<title>標(biāo)簽了,關(guān)于這個(gè)標(biāo)簽,在HTML4.01標(biāo)準(zhǔn)中是這么說的:

Every HTML document must have a TITLE element in the HEAD section.

也即是說,HTML4要求<title>標(biāo)簽是必須存在的。

而在HTML5的標(biāo)準(zhǔn)中,又是這么說的:

There must be no more than one title element per document.

HTML5中只設(shè)定了<title>標(biāo)簽數(shù)量的上限,卻沒有指明下限,也就是說,沒有<title>的文檔已經(jīng)被視為一個(gè)合法的文檔了。

對(duì)于DOCTYPE,HTML4中設(shè)定了6種DOCTYPE,HTML5中將DOCTYPE分為3種,這個(gè)在以后的章節(jié)中再具體說明。

再回過來看一下文檔組成,除去0-n個(gè)空格或注釋這樣并沒有多大意義的元素之外,組成的列表中還說明有一個(gè)HTML元素,但是最簡(jiǎn)的源碼中卻沒有這東西。這是因?yàn)樵贖TML的規(guī)范中,一直存在“隱式標(biāo)簽”這樣的概念,關(guān)于隱式標(biāo)簽,大致可以這么解釋:

一部分元素,當(dāng)滿足特定的前提條件時(shí),其開始標(biāo)簽或結(jié)束標(biāo)簽可以在源碼中省略。在這種情況下,被省略的標(biāo)簽稱為“隱式標(biāo)簽”。

需要注意的是,此處的省略指的是在源碼中省略,而在最終成型的DOM樹中,這個(gè)標(biāo)簽是存在的,因此才稱為隱式標(biāo)簽。因此上面最簡(jiǎn)的源碼結(jié)構(gòu),在生成DOM樹后,其真正的結(jié)構(gòu)是這樣的:

  1. <!DOCTYPE html> 
  2. <html> 
  3.     <head></head> 
  4.     <body></body> 
  5. </html> 

***,再總結(jié)一下XHTML中的一些規(guī)范:

  • · 因?yàn)槭荴ML,所以為了表示這是一個(gè)HTML文檔,必須有一個(gè)命名空間,其值為http://www.w3.org/1999/xhtml。
  • · 因?yàn)槭荴ML,所以MIME type不能是text/html了,text/xml、application/xml、application/xml+html都是比較好的選擇。
  • · 因?yàn)槭荴ML,必須有根元素,根元素為<html>,即<html>的開始和結(jié)束標(biāo)簽不能省略了。
  • · 因?yàn)槭荴ML,所有元素只要有了開始標(biāo)簽,就不能沒有結(jié)束標(biāo)簽,或者自閉合。
  • · 因?yàn)槭荴ML,所有元素都得嚴(yán)格遵守大小寫,元素名稱必須為小寫。

因?yàn)槭荴ML,文檔變得嚴(yán)格了很多,也因?yàn)槭荴ML,其可讀性和規(guī)范性提高了不少。但最終,我們始終要在HTML的寬容性和XML的規(guī)范性之間找到***的平衡點(diǎn),一味地追求極端始終是一個(gè)錯(cuò)誤。
 

原文鏈接:http://www.cnblogs.com/GrayZhang/archive/2011/03/28/learning-html5-structure.html

【編輯推薦】

  1. Modernizr:為HTML 5和CSS3而生
  2. 學(xué)習(xí)HTML 5十佳站點(diǎn)推薦
  3. 技術(shù)大牛談HTML 5設(shè)計(jì)原理
  4. HTML 5聯(lián)手jQuery實(shí)現(xiàn)超酷圖像灰度漸變效果
  5. HTML 5之表單新功能解析
責(zé)任編輯:陳貽新 來源: 博客園
相關(guān)推薦

2011-04-02 09:25:43

HTML 5

2011-04-11 10:14:47

HTML 5

2009-07-14 08:51:59

HTML 5視頻標(biāo)準(zhǔn)

2013-01-30 15:35:47

AdobeHTML5

2012-05-22 08:52:09

HTML5

2011-09-01 10:27:42

jQuery Mobi

2011-07-14 09:16:10

HTML 5

2013-06-24 13:38:34

HTML5 DataList

2009-10-12 08:52:31

HTML5標(biāo)準(zhǔn)

2012-01-16 15:36:37

ChromeHTML5

2014-10-31 14:32:20

CSSW3CISO

2009-07-07 14:33:44

JSP入門

2011-11-09 10:05:26

HTML 5

2012-05-02 10:28:16

HTML5

2012-05-23 13:00:37

HTML5

2010-04-16 10:01:43

2012-06-19 14:20:39

HTML5

2013-05-14 10:24:39

HTML 5英特爾標(biāo)準(zhǔn)

2011-05-13 17:36:05

HTML

2011-08-31 10:37:06

MTK開發(fā)入門
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)