DOCTYPE的類型
最近被面試問到了HTML的DOCTYPE有幾種類型,直接就蒙了。沒辦法總結一下吧。
分類
總體上應該分為三類: HTML5,HTML4.0,XHTML。
HTML5
HTML5模式是目前最常用的模式。直接在DOCTYPE后面添加html即可。
<!DOCTYPE html>
HTML4.0 模式
分為三種模式:嚴格模式(strict),過渡模式(Transitional), Frameset模式。區別主要在於是不是允許展示性和棄用的元素,是否允許框架集
- 嚴格模式:不允許展示性、棄用元素和框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- 過渡模式:允許展示性、棄用元素(比如font,color等),不允許框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- Frameset模式:允許展示性、棄用元素,允許框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 模式
XHTML是一種比較嚴格的模式,所有元素必須以XML格式編寫。分類和HTML4.0比較類似,分為嚴格模式、過渡模式、Frameset模式,同時添加了1.1模式。
- 嚴格模式:不允許展示性、棄用元素和框架集
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- 過渡模式:允許展示性、棄用元素(比如font,color等),不允許框架集
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- Frameset模式:允許展示性、棄用元素,允許框架集
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- 1.1模式:和嚴格模式類似,但允許添加模型,即擴展、簡化、定制之類的。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
HTML和XHTML編寫區別
XHTML要求編寫符合XML的語法。主要區別
- XML區分大小寫
- XML標簽必須閉合,單元素需要以/作為閉合結尾,嵌套不能出錯。
- XML屬性必須放在引號中
- XML屬性必須有屬性值,不能省略
- XML中空格不會被自動刪除
附: 參考