W3C驗(yàn)證中10個(gè)常見(jiàn)問(wèn)題_Web標(biāo)準(zhǔn)教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
一直以來(lái),大家都熱衷于CSS網(wǎng)頁(yè)布局的學(xué)習(xí),模板無(wú)憂(yōu)—Mb5u.com為此不斷努力,大家為了符合Web標(biāo)準(zhǔn),為了實(shí)現(xiàn)內(nèi)容和表現(xiàn)分離。雖然通過(guò)驗(yàn)證只是一種檢驗(yàn)的手段,并不是我們追求的目標(biāo),但有時(shí)候通不過(guò)驗(yàn)證,也是一件很郁悶的事情,今天列出W3C 驗(yàn)證中10個(gè)導(dǎo)致失敗的常見(jiàn)問(wèn)題,希望對(duì)大家有幫助。
W3C validation有時(shí)難以操作,但用它你可以查看由版面設(shè)計(jì)引起的差錯(cuò)。驗(yàn)證程序拋出大量差錯(cuò)和警告,說(shuō)明你的XHTML尚未完善,可能無(wú)法在不同瀏覽器上保持一致功能。下面十個(gè)細(xì)微的失效問(wèn)題難住了大批程序員,我們告訴你如何解決。在本文開(kāi)始前介紹一些使用W3C驗(yàn)證程序時(shí)需要注意的問(wèn)題。
不要擔(dān)心驗(yàn)證程序的警告——如果驗(yàn)證程序說(shuō)發(fā)現(xiàn)12處錯(cuò)誤以及83處警告,不要理它,繼續(xù)進(jìn)行下一步。
一次更正一個(gè)錯(cuò)誤——按順序進(jìn)展工作,從上到下,一次修正一個(gè)錯(cuò)誤。HTML用瀏覽器從上到下瀏覽,這些錯(cuò)誤也是按同樣順序顯示。
每次修正代碼后要刷新代碼,使它們重新生效——一個(gè)小錯(cuò)誤常常會(huì)引發(fā)之后整頁(yè)的連串錯(cuò)誤。因此如果操作不當(dāng),“修正錯(cuò)誤”也可能引發(fā)更多錯(cuò)誤。每次修正后使代碼重新生效,這樣就可以確保完全解決問(wèn)題。
知道了上面這些基本的異常情況,下面我們就來(lái)看看版面設(shè)計(jì)無(wú)效的幾個(gè)原因。
一、div 標(biāo)簽未關(guān)閉
這是版面設(shè)計(jì)失效的最常見(jiàn)原因之一。當(dāng)我們了解到這是多少精致的版塊設(shè)計(jì)失效的罪魁禍?zhǔn)讜r(shí),總會(huì)大吃一驚。開(kāi)啟的div標(biāo)簽是最普遍的版塊設(shè)計(jì)失誤之一,也是最難診斷的失誤之一。驗(yàn)證程序有時(shí)會(huì)指向錯(cuò)誤的開(kāi)啟div標(biāo)簽,診斷時(shí)就像大海撈針一樣麻煩。
二、麻煩的embed標(biāo)簽
九十年代早期,Microsoft和Netscape的瀏覽器開(kāi)始能夠辨認(rèn)非標(biāo)準(zhǔn)的獨(dú)有字體。遺憾的是這意味著W3C驗(yàn)證程序還不能識(shí)別某些關(guān)鍵HTML 標(biāo)簽,如“embed”,即使這些標(biāo)簽已經(jīng)被廣泛使用。如果確實(shí)希望得到嚴(yán)格的DOCTYPE(文檔類(lèi)型)驗(yàn)證,就只能放棄嵌套。
如果同時(shí)想要生效的版面設(shè)計(jì)和嵌入式媒體,可以試試Flash Satay方法。
三、不當(dāng)?shù)腄OCTYPE聲明
不聲明DOCTYPE,或者在文件開(kāi)始錯(cuò)誤聲明DOCTYPE,也是一個(gè)常見(jiàn)錯(cuò)誤。根據(jù)一般經(jīng)驗(yàn),Strict DOCTYPE是大家追求的最高級(jí)驗(yàn)證。Strict validation表明你的網(wǎng)頁(yè)能夠在所有瀏覽器上都得到最佳展示。Strict 聲明代碼如下:
四、結(jié)尾斜線(xiàn)
如果你的網(wǎng)站不能驗(yàn)證,很有可能是在代碼的某個(gè)地方漏寫(xiě)了結(jié)尾斜線(xiàn)。我們很容易忽略結(jié)尾斜線(xiàn)之類(lèi)的東西,特別是在image標(biāo)簽等元素中。例如:
在嚴(yán)格的DOCTYPE中這是無(wú)效的。要在img標(biāo)簽結(jié)尾處加上“/”以解決此問(wèn)題。
五、Align標(biāo)簽
如果DOCTYPE被設(shè)為T(mén)ransitional,你就會(huì)使用“align”標(biāo)簽,但如果要求更高一點(diǎn)希望得到Strict驗(yàn)證,你會(huì)看到很多錯(cuò)誤。 Align是另一個(gè)不可用于版面設(shè)計(jì)的標(biāo)簽。可以嘗試用“float”或者“text-align”來(lái)代替align轉(zhuǎn)換元素。
六、JavaScript
如果已經(jīng)聲明Strict DOCTYPE,就需要在JavaScript中覆蓋CDATA標(biāo)簽。驗(yàn)證程序的這一方面難倒了很多程序員,因?yàn)榫W(wǎng)站傾向于為廣告和追蹤腳本使用嵌入的 JavaScript。如果必須用到JavaScript,可以在其前后加上如下標(biāo)簽:
七、圖像需要“alt”屬性
你可能還沒(méi)有注意到,圖像也是高級(jí)驗(yàn)證的潛在絆腳石。除了結(jié)尾斜線(xiàn),高級(jí)驗(yàn)證也要求用alt標(biāo)簽來(lái)描述圖像,如alt= ”Scary vampire picture”。
搜索引擎也靠alt標(biāo)簽來(lái)識(shí)別網(wǎng)頁(yè)上的圖像,所以無(wú)論怎樣加上alt標(biāo)簽總是好的。
八、未知實(shí)體數(shù)據(jù)
實(shí)體數(shù)據(jù)是又一個(gè)影響驗(yàn)證的易犯錯(cuò)誤。我們可以考慮用適當(dāng)?shù)木幋a字符來(lái)代替“&”等符號(hào)。entire list中列出在XHTML版塊設(shè)計(jì)中可用的適當(dāng)?shù)木幋a字符實(shí)體數(shù)據(jù)。
九、不良嵌套
嵌套就是元素里又包括元素,如下所示:
我們?nèi)菀谆煜短自氐捻樞颉@缭赿iv標(biāo)簽前啟動(dòng)strong標(biāo)簽,但又先關(guān)閉div標(biāo)簽。這可能不會(huì)改變版塊布局,但卻會(huì)使你的版塊設(shè)計(jì)失效。
十、缺少“title”標(biāo)簽
盡管這看上去是一個(gè)很明顯的錯(cuò)誤,很多程序員(包括我自己)還是經(jīng)常會(huì)在“head”版塊中遺漏title標(biāo)簽。當(dāng)你看到“missing a required sub-element of HEAD”(缺少HEAD的必要子元素)時(shí),才會(huì)發(fā)現(xiàn)自己忘記添加title標(biāo)簽了。來(lái)源:net.tutsplus.com
W3C validation有時(shí)難以操作,但用它你可以查看由版面設(shè)計(jì)引起的差錯(cuò)。驗(yàn)證程序拋出大量差錯(cuò)和警告,說(shuō)明你的XHTML尚未完善,可能無(wú)法在不同瀏覽器上保持一致功能。下面十個(gè)細(xì)微的失效問(wèn)題難住了大批程序員,我們告訴你如何解決。在本文開(kāi)始前介紹一些使用W3C驗(yàn)證程序時(shí)需要注意的問(wèn)題。
不要擔(dān)心驗(yàn)證程序的警告——如果驗(yàn)證程序說(shuō)發(fā)現(xiàn)12處錯(cuò)誤以及83處警告,不要理它,繼續(xù)進(jìn)行下一步。
一次更正一個(gè)錯(cuò)誤——按順序進(jìn)展工作,從上到下,一次修正一個(gè)錯(cuò)誤。HTML用瀏覽器從上到下瀏覽,這些錯(cuò)誤也是按同樣順序顯示。
每次修正代碼后要刷新代碼,使它們重新生效——一個(gè)小錯(cuò)誤常常會(huì)引發(fā)之后整頁(yè)的連串錯(cuò)誤。因此如果操作不當(dāng),“修正錯(cuò)誤”也可能引發(fā)更多錯(cuò)誤。每次修正后使代碼重新生效,這樣就可以確保完全解決問(wèn)題。
知道了上面這些基本的異常情況,下面我們就來(lái)看看版面設(shè)計(jì)無(wú)效的幾個(gè)原因。
一、div 標(biāo)簽未關(guān)閉
這是版面設(shè)計(jì)失效的最常見(jiàn)原因之一。當(dāng)我們了解到這是多少精致的版塊設(shè)計(jì)失效的罪魁禍?zhǔn)讜r(shí),總會(huì)大吃一驚。開(kāi)啟的div標(biāo)簽是最普遍的版塊設(shè)計(jì)失誤之一,也是最難診斷的失誤之一。驗(yàn)證程序有時(shí)會(huì)指向錯(cuò)誤的開(kāi)啟div標(biāo)簽,診斷時(shí)就像大海撈針一樣麻煩。
二、麻煩的embed標(biāo)簽
九十年代早期,Microsoft和Netscape的瀏覽器開(kāi)始能夠辨認(rèn)非標(biāo)準(zhǔn)的獨(dú)有字體。遺憾的是這意味著W3C驗(yàn)證程序還不能識(shí)別某些關(guān)鍵HTML 標(biāo)簽,如“embed”,即使這些標(biāo)簽已經(jīng)被廣泛使用。如果確實(shí)希望得到嚴(yán)格的DOCTYPE(文檔類(lèi)型)驗(yàn)證,就只能放棄嵌套。
如果同時(shí)想要生效的版面設(shè)計(jì)和嵌入式媒體,可以試試Flash Satay方法。
三、不當(dāng)?shù)腄OCTYPE聲明
不聲明DOCTYPE,或者在文件開(kāi)始錯(cuò)誤聲明DOCTYPE,也是一個(gè)常見(jiàn)錯(cuò)誤。根據(jù)一般經(jīng)驗(yàn),Strict DOCTYPE是大家追求的最高級(jí)驗(yàn)證。Strict validation表明你的網(wǎng)頁(yè)能夠在所有瀏覽器上都得到最佳展示。Strict 聲明代碼如下:
示例代碼 [m.dounai2.com]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
四、結(jié)尾斜線(xiàn)
如果你的網(wǎng)站不能驗(yàn)證,很有可能是在代碼的某個(gè)地方漏寫(xiě)了結(jié)尾斜線(xiàn)。我們很容易忽略結(jié)尾斜線(xiàn)之類(lèi)的東西,特別是在image標(biāo)簽等元素中。例如:
在嚴(yán)格的DOCTYPE中這是無(wú)效的。要在img標(biāo)簽結(jié)尾處加上“/”以解決此問(wèn)題。
示例代碼 [m.dounai2.com]
<img src="http://m.dounai2.com/logo.png" alt="Mb5u.com">
五、Align標(biāo)簽
如果DOCTYPE被設(shè)為T(mén)ransitional,你就會(huì)使用“align”標(biāo)簽,但如果要求更高一點(diǎn)希望得到Strict驗(yàn)證,你會(huì)看到很多錯(cuò)誤。 Align是另一個(gè)不可用于版面設(shè)計(jì)的標(biāo)簽。可以嘗試用“float”或者“text-align”來(lái)代替align轉(zhuǎn)換元素。
六、JavaScript
如果已經(jīng)聲明Strict DOCTYPE,就需要在JavaScript中覆蓋CDATA標(biāo)簽。驗(yàn)證程序的這一方面難倒了很多程序員,因?yàn)榫W(wǎng)站傾向于為廣告和追蹤腳本使用嵌入的 JavaScript。如果必須用到JavaScript,可以在其前后加上如下標(biāo)簽:
示例代碼 [m.dounai2.com]
<script type="text/javascript">
/* <![CDATA[ */
// JavaScript here
};
/* ]]> */
</script>
/* <![CDATA[ */
// JavaScript here
};
/* ]]> */
</script>
七、圖像需要“alt”屬性
你可能還沒(méi)有注意到,圖像也是高級(jí)驗(yàn)證的潛在絆腳石。除了結(jié)尾斜線(xiàn),高級(jí)驗(yàn)證也要求用alt標(biāo)簽來(lái)描述圖像,如alt= ”Scary vampire picture”。
搜索引擎也靠alt標(biāo)簽來(lái)識(shí)別網(wǎng)頁(yè)上的圖像,所以無(wú)論怎樣加上alt標(biāo)簽總是好的。
八、未知實(shí)體數(shù)據(jù)
實(shí)體數(shù)據(jù)是又一個(gè)影響驗(yàn)證的易犯錯(cuò)誤。我們可以考慮用適當(dāng)?shù)木幋a字符來(lái)代替“&”等符號(hào)。entire list中列出在XHTML版塊設(shè)計(jì)中可用的適當(dāng)?shù)木幋a字符實(shí)體數(shù)據(jù)。
九、不良嵌套
嵌套就是元素里又包括元素,如下所示:
示例代碼 [m.dounai2.com]
<div><strong>Sweet!</strong></div>
我們?nèi)菀谆煜短自氐捻樞颉@缭赿iv標(biāo)簽前啟動(dòng)strong標(biāo)簽,但又先關(guān)閉div標(biāo)簽。這可能不會(huì)改變版塊布局,但卻會(huì)使你的版塊設(shè)計(jì)失效。
十、缺少“title”標(biāo)簽
盡管這看上去是一個(gè)很明顯的錯(cuò)誤,很多程序員(包括我自己)還是經(jīng)常會(huì)在“head”版塊中遺漏title標(biāo)簽。當(dāng)你看到“missing a required sub-element of HEAD”(缺少HEAD的必要子元素)時(shí),才會(huì)發(fā)現(xiàn)自己忘記添加title標(biāo)簽了。來(lái)源:net.tutsplus.com
相關(guān)Web標(biāo)準(zhǔn)教程:
- Web標(biāo)準(zhǔn):需要正確的使用H1~ H6標(biāo)簽
- 五個(gè)WEB標(biāo)準(zhǔn)中必須注意的地方
- 做到結(jié)構(gòu)(XHTML),表現(xiàn)(CSS),行為(JavaScript)的分離
- CSS標(biāo)準(zhǔn):HTML標(biāo)簽元素的關(guān)閉
- Web標(biāo)準(zhǔn)之路 勿使用W3C廢棄的元素
- CSS布局 聲明文檔類(lèi)型描述(DTD)
- DIV CSS\讓搜索引擎蜘蛛不再累
- 用XHTML+CSS創(chuàng)建基于Web標(biāo)準(zhǔn)的網(wǎng)頁(yè)
- XHTML+CSS創(chuàng)建基于Web標(biāo)準(zhǔn)的網(wǎng)站
- DIV+CSS對(duì)SEO的幫助
- 淺析什么是Web標(biāo)準(zhǔn) 及其前景
- CSSer新手寄語(yǔ):開(kāi)始標(biāo)準(zhǔn)之路
Web標(biāo)準(zhǔn)教程Rss訂閱Div+Css教程搜索
Web標(biāo)準(zhǔn)教程推薦
- Web標(biāo)準(zhǔn)之路 勿使用W3C廢棄的元素
- 不用script僅用css編寫(xiě)無(wú)限分級(jí)彈出菜單
- WebStandards(XHTML CSS)的目的和好處是什么?
- 符合WEB標(biāo)準(zhǔn)的下拉導(dǎo)航菜單例子
- W3C驗(yàn)證中10個(gè)常見(jiàn)問(wèn)題
- Web標(biāo)準(zhǔn)建站常見(jiàn)錯(cuò)誤和校驗(yàn)方法
- WEB標(biāo)準(zhǔn)教程第10天:自適應(yīng)高度
- 究竟是誰(shuí)的問(wèn)題 界面爛還是界面設(shè)計(jì)爛?
- WebDeveloper更新最新版本W(wǎng)ebDeveloper1.1.4
- 純CSS制作的新聞網(wǎng)站中的文章列表
猜你也喜歡看這些
- CSS實(shí)例:list-style-type在IE與FF中奇怪的現(xiàn)象解析
- IE中奇怪的左右border斷線(xiàn)現(xiàn)象
- text-overflow:ellipsis非IE的瀏覽器的另類(lèi)應(yīng)用!
- IE6的雙倍邊距BUG
- IE中文字結(jié)尾出現(xiàn)重復(fù)跳字的解決辦法
- CSS hack之特殊符號(hào)的應(yīng)用
- IE6、IE7絕對(duì)定位與鏈接問(wèn)題研究
- CSSHack代碼范例:兼容IE5.0、IE5.5、IE6.0、IE7.0、FF1.5、FF2.0
- CSS Hack整理
- 兩個(gè)層之間的為什么會(huì)有間隙(IE3pxbug)?
- 相關(guān)鏈接:
- 教程說(shuō)明:
Web標(biāo)準(zhǔn)教程-W3C驗(yàn)證中10個(gè)常見(jiàn)問(wèn)題。