Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
前寫(xiě)html或者Jsp頁(yè)面,從來(lái)不注意doctype的聲明,也不太明白doctype的作用。
一般都是這樣寫(xiě)的
<html> <body> <h1>我的第一個(gè)標(biāo)題</h1> <p>我的第一個(gè)段落。</p> </body> </html>
直到最近碰到了一個(gè)非常奇葩的bug:
某一個(gè)頁(yè)面在IE7和8,Chrome,ff等下正常,但是在IE9下顯示有問(wèn)題,我就開(kāi)始找啊找,各種調(diào)試,各種log,終于在httpWatch里邊找到了答案:DOCTYPE未聲明。于是我給頁(yè)面添加了<!DOCTYPE html>,果然奏效了。
哪么<!DOCTYPE>是何方神圣,馬上開(kāi)始科譜
來(lái)自于w3school的文檔解釋是這樣的
定義和用法
<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位于 <html> 標(biāo)簽之前。
<!DOCTYPE> 聲明不是 HTML 標(biāo)簽;它是指示 web 瀏覽器關(guān)于頁(yè)面使用哪個(gè) HTML 版本進(jìn)行編寫(xiě)的指令。
在 HTML 4.01 中,<!DOCTYPE> 聲明引用 DTD,因?yàn)?HTML 4.01 基于 SGML。DTD 規(guī)定了標(biāo)記語(yǔ)言的規(guī)則,這樣瀏覽器才能正確地呈現(xiàn)內(nèi)容。
HTML5 不基于 SGML,所以不需要引用 DTD。
提示:請(qǐng)始終向 HTML 文檔添加 <!DOCTYPE> 聲明,這樣瀏覽器才能獲知文檔類型。
document.compatMode用來(lái)判斷當(dāng)前瀏覽器采用的渲染方式。
官方解釋:
BackCompat:標(biāo)準(zhǔn)兼容模式關(guān)閉。
CSS1Compat:標(biāo)準(zhǔn)兼容模式開(kāi)啟。
這個(gè)屬性會(huì)被瀏覽器識(shí)別并使用,但是如果你的頁(yè)面沒(méi)有DOCTYPE的聲明,那么compatMode默認(rèn)就是BackCompat,
這也就是惡夢(mèng)的開(kāi)始 ,瀏覽器會(huì)按照自己的方式解析渲染頁(yè)面,那么,在不同的瀏覽器就會(huì)顯示不同的樣式。
如果你的頁(yè)面添加了<!DOCTYPE html>那么,那么就開(kāi)啟了標(biāo)準(zhǔn)模式,那么瀏覽器就得老老實(shí)實(shí)的按照W3C的標(biāo)準(zhǔn)解析渲染頁(yè)面,這樣一來(lái),你的頁(yè)面在所有的瀏覽器里顯示的就都是一個(gè)樣子了。
這就是<!DOCTYPE html>的作用。
<!DOCTYPE html>使用也很簡(jiǎn)單,就是在你的html頁(yè)面的第一行添加"<!DOCTYPE html>"一行代碼就可以了
<!DOCTYPE html> <html> <head> <title>文檔的標(biāo)題</title> </head> <body> 文檔的內(nèi)容...... </body> </html>
jsp的話,添加在<%@ page %>的下一行
不用區(qū)分大小寫(xiě)哦。
TML 是一種標(biāo)記語(yǔ)言,用于創(chuàng)建網(wǎng)頁(yè)和應(yīng)用程序。它的基本結(jié)構(gòu)由以下三個(gè)部分組成:
一個(gè) HTML 的基本結(jié)構(gòu)示例如下:
TML 實(shí)例
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>菜鳥(niǎo)教程(runoob.com)</title></head><body><h1>我的第一個(gè)標(biāo)題</h1><p>我的第一個(gè)段落。</p></body></html>
實(shí)例解析
DOCTYPE 聲明了文檔類型
位于標(biāo)簽 <html> 與 </html> 描述了文檔類型
位于標(biāo)簽 <body> 與 </body> 為可視化網(wǎng)頁(yè)內(nèi)容
位于標(biāo)簽 <h1> 與 </h1> 作為一個(gè)標(biāo)題使用
位于標(biāo)簽 <p> 與 </p> 作為一個(gè)段落顯示
<!DOCTYPE html> 在HTML5中也是描述了文檔類型。 |
什么是HTML?
HTML 是用來(lái)描述網(wǎng)頁(yè)的一種語(yǔ)言。
HTML 指的是超文本標(biāo)記語(yǔ)言: HyperText Markup Language
HTML 不是一種編程語(yǔ)言,而是一種標(biāo)記語(yǔ)言
標(biāo)記語(yǔ)言是一套標(biāo)記標(biāo)簽 (markup tag)
HTML 使用標(biāo)記標(biāo)簽來(lái)描述網(wǎng)頁(yè)
HTML 文檔包含了HTML 標(biāo)簽及文本內(nèi)容
HTML文檔也叫做 web 頁(yè)面
HTML 標(biāo)簽
HTML 標(biāo)記標(biāo)簽通常被稱為 HTML 標(biāo)簽 (HTML tag)。
HTML 標(biāo)簽是由尖括號(hào)包圍的關(guān)鍵詞,比如 <html>
HTML 標(biāo)簽通常是成對(duì)出現(xiàn)的,比如 <b> 和 </b>
標(biāo)簽對(duì)中的第一個(gè)標(biāo)簽是開(kāi)始標(biāo)簽,第二個(gè)標(biāo)簽是結(jié)束標(biāo)簽
開(kāi)始和結(jié)束標(biāo)簽也被稱為開(kāi)放標(biāo)簽和閉合標(biāo)簽
<標(biāo)簽>內(nèi)容</標(biāo)簽>
HTML 元素
"HTML 標(biāo)簽" 和 "HTML 元素" 通常都是描述同樣的意思.
但是嚴(yán)格來(lái)講, 一個(gè) HTML 元素包含了開(kāi)始標(biāo)簽與結(jié)束標(biāo)簽,如下實(shí)例:
HTML 元素:
<p>這是一個(gè)段落。</p>
Web 瀏覽器
Web瀏覽器(如谷歌瀏覽器,Internet Explorer,F(xiàn)irefox,Safari)是用于讀取HTML文件,并將其作為網(wǎng)頁(yè)顯示。
瀏覽器并不是直接顯示的HTML標(biāo)簽,但可以使用標(biāo)簽來(lái)決定如何展現(xiàn)HTML頁(yè)面的內(nèi)容給用戶:
HTML 網(wǎng)頁(yè)結(jié)構(gòu)
下面是一個(gè)可視化的HTML頁(yè)面結(jié)構(gòu):
<html>
<head>
<title>頁(yè)面標(biāo)題</title>
</head>
<body>
<h1>這是一個(gè)標(biāo)題</h1>
<p>這是一個(gè)段落。</p>
<p>這是另外一個(gè)段落。</p>
</body>
</html>
只有 <body> 區(qū)域 (白色部分) 才會(huì)在瀏覽器中顯示。 |
HTML版本
從初期的網(wǎng)絡(luò)誕生后,已經(jīng)出現(xiàn)了許多HTML版本:
版本 | 發(fā)布時(shí)間 |
---|---|
HTML | 1991 |
HTML+ | 1993 |
HTML 2.0 | 1995 |
HTML 3.2 | 1997 |
HTML 4.01 | 1999 |
XHTML 1.0 | 2000 |
HTML5 | 2012 |
XHTML5 | 2013 |
<!DOCTYPE> 聲明
<!DOCTYPE>聲明有助于瀏覽器中正確顯示網(wǎng)頁(yè)。
網(wǎng)絡(luò)上有很多不同的文件,如果能夠正確聲明HTML的版本,瀏覽器就能正確顯示網(wǎng)頁(yè)內(nèi)容。
doctype 聲明是不區(qū)分大小寫(xiě)的,以下方式均可:
<!DOCTYPE html>
<!DOCTYPE HTML>
<!doctype html>
<!Doctype Html>
通用聲明
HTML5
<!DOCTYPE html>
HTML 4.01
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
查看完整網(wǎng)頁(yè)聲明類型 DOCTYPE 參考手冊(cè)。
中文編碼
目前在大部分瀏覽器中,直接輸出中文會(huì)出現(xiàn)中文亂碼的情況,這時(shí)候我們就需要在頭部將字符聲明為 UTF-8。
HTML 實(shí)例
<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>頁(yè)面標(biāo)題</title></head><body><h1>我的第一個(gè)標(biāo)題</h1><p>我的第一個(gè)段落。</p></body></html>
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。