怎樣做(zuò)一個(gè)符合w3c規範的網頁?作(zuò)為(wèi)網站(zhàn)技(jì)術(shù)開(kāi)發人(rén)員而言,往往是站(zhàn)在自己的開(kāi)發角度來(lái)實 施網站(zhàn)布署(讀取數(shù)據及開(kāi)發的方便性等等),而不是站(zhàn)在網站(zhàn)訪問者與搜索引擎角度。因此大(dà)部分的網站(zhàn)在浏覽方面不夠直觀或是方便,特别是現在w3c的規範,更是在大(dà)部分的網站(zhàn)開(kāi)發人(rén)員腦(nǎo)裏一片空(kōng)白。何況百度 、google、msn、yahoo等專業搜索引擎更有(yǒu)自己的搜索規則及判斷網頁等級技(jì)術(shù),所以網站(zhàn)要,的目的隻有(yǒu)一個(gè):符合标準,符合蜘蛛爬行(xíng)的标準,更重要的是符合網站(zhàn)訪問者浏覽的方便及易用性。以下文章中主要通(tōng)過三個(gè)方面來(lái)講述有(yǒu)關W3C!
什麽是W3C标準
W3C其實就是World Wide Web Consortium,全球萬維網聯盟的簡稱。W3C的主要職責就是确定未來(lái)萬維網的發展方向,并且制(zhì)定相關的推薦(recommendation, 由于W3C是一個(gè)民間(jiān)組織,沒有(yǒu)約束性,因此隻提供建議)。HTML4.01規範建議(HTML4.01 Specification Recommendation)就是由W3C所制(zhì)定的。它還(hái)負責制(zhì)定XML,MathML等其他網絡語言規範。
怎樣通(tōng)過W3C标準的驗證?
步驟方法如下:
1、圖片的alt=”” 屬性必須每張圖片都加上(shàng),而且對齊屬性用CSS來(lái)定義。不加不能通(tōng)過XHTML 1.0的驗證。
2、每個(gè)文檔必須加上(shàng)DTD聲明(míng)。
a) !DOCTYPE html PUBLIC “-//W3C//DTDXHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
去掉後能通(tōng)過驗證,但(dàn)有(yǒu)警告:No DOCTYPE found! Checking with default XHTML 1.0 Transitional Document Type.
3、RSS的XML通(tōng)過時(shí)其中的地址必須與檢測的地址一緻,否則會(huì)報錯。
4、标簽的鏈接屬性加上(shàng)JAVASCRIPT事件時(shí)必須為(wèi)#空(kōng)鏈,不能為(wèi)javascript:;或javascript:void(null);
5、同一個(gè)頁面當中,同名的ID會(huì)産生(shēng)沖突。所以以ID定義樣式的必須改成類引用。
<div id=”a1″>111</div>
<div id=”a1″>222</div>
如果不用W3C來(lái)檢測的話(huà),在CSS設計(jì)裏是允許這樣做(zuò)的。
那(nà)是程序的角度不能相同,CSS上(shàng)是可(kě)以相同的!
之前就是相同的産生(shēng)問題,後面就改成類引用了!
6、不可(kě)省略雙引号或單引号。
a) 這個(gè)是指屬性,标準是雙引号~
單引号也能通(tōng)過驗證。
7、标簽之間(jiān)不可(kě)錯位嵌套。
<div class=”CaseDetaListSS”>原文鏈接:<a href=https://www.yunbuluo.net/xueyuan/’/html/cases/cases_61.html’>官方網站(zhàn)</div></a>
這是不允許的。
8、所有(yǒu)的标簽都使用小(xiǎo)寫。
9、FLASH的标簽代碼中不能含有(yǒu),必須采用其它的方法實現。
10、所有(yǒu)的标簽中含有(yǒu)的屬性必須有(yǒu)值(官方的說法)。
11、标簽必須配對完成,單标簽必須以/關閉
12、JS和(hé)CSS外部引入文件必須加上(shàng)類型定義。
13、所有(yǒu)的樣式全部寫在外部文件。用類名定義。在使用的地方引用。
14、頁面上(shàng)的一些(xiē)特殊字符必須用HTML代碼來(lái)标識.如“&”寫成“&“
沒通(tōng)過W3C 标準驗證的原因
每次修正代碼後要刷新代碼,使它們重新生(shēng)效——一個(gè)小(xiǎo)錯誤常常會(huì)引發之後整頁的連串錯誤。因此如果操作(zuò)不當,“修正錯誤”也可(kě)能引發更多(duō)錯誤。每次修正後使代碼重新生(shēng)效,這樣就可(kě)以确保完全解決問題。
知道(dào)了上(shàng)面這些(xiē)基本的異常情況,下面discuz模闆網就來(lái)看看版面設計(jì)無效的幾個(gè)原因。
1、div 标簽未關閉
這是版面設計(jì)失效的最常見原因之一。當我們了解到這是多(duō)少(shǎo)精緻的版塊設計(jì)失效的罪魁禍首時(shí),總會(huì)大(dà)吃(chī)一驚。開(kāi)啓的div标簽是最普遍的版塊設計(jì)失誤之一,也是最難診斷的失誤之一。驗證程序有(yǒu)時(shí)會(huì)指向錯誤的開(kāi)啓div标簽,診斷時(shí)就像大(dà)海撈針一樣麻煩。
2、麻煩的embed标簽
九十年代早期,Microsoft和(hé)Netscape的浏覽器(qì)開(kāi)始能夠辨認非标準的獨有(yǒu)字體(tǐ)。遺憾的是這意味着W3C驗證程序還(hái)不能識别某些(xiē)關鍵HTML 标簽,如“embed”,即使這些(xiē)标簽已經被廣泛使用。如果确實希望得(de)到嚴格的DOCTYPE(文檔類型)驗證,就隻能放棄嵌套。
如果同時(shí)想要生(shēng)效的版面設計(jì)和(hé)嵌入式媒體(tǐ),可(kě)以試試Flash Satay方法。
3、不當的DOCTYPE聲明(míng)
不聲明(míng)DOCTYPE,或者在文件開(kāi)始錯誤聲明(míng)DOCTYPE,也是一個(gè)常見錯誤。根據一般經驗,Strict DOCTYPE是大(dà)家(jiā)追求的最高(gāo)級驗證。Strict validation表明(míng)你(nǐ)的網頁能夠在所有(yǒu)浏覽器(qì)上(shàng)都得(de)到最佳展示。Strict 聲明(míng)代碼如下:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
4、結尾斜線
如果你(nǐ)的網站(zhàn)不能驗證,很(hěn)有(yǒu)可(kě)能是在代碼的某個(gè)地方漏寫了結尾斜線。我們很(hěn)容易忽略結尾斜線之類的東西,特别是在image标簽等元素中。例如:
在嚴格的DOCTYPE中這是無效的。要在img标簽結尾處加上(shàng)“/”以解決此問題。
<img src=https://www.yunbuluo.net/xueyuan/”” alt=””>
5、Align标簽
如果DOCTYPE被設為(wèi)Transitional,你(nǐ)就會(huì)使用“align”标簽,但(dàn)如果要求更高(gāo)一點希望得(de)到Strict驗證,你(nǐ)會(huì)看到很(hěn)多(duō)錯誤。 Align是另一個(gè)不可(kě)用于版面設計(jì)的标簽。可(kě)以嘗試用“float”或者“text-align”來(lái)代替align轉換元素。
6、JavaScript
如果已經聲明(míng)Strict DOCTYPE,就需要在JavaScript中覆蓋CDATA标簽。驗證程序的這一方面難倒了很(hěn)多(duō)程序員,因為(wèi)網站(zhàn)傾向于為(wèi)廣告和(hé)追蹤腳本使用嵌入的 JavaScript。如果必須用到JavaScript,可(kě)以在其前後加上(shàng)如下标簽:
<script type=”text/javascript”>
/* <![CDATA[ */
// JavaScript here
};
/* ]]> */
</script>
7、圖像需要“alt”屬性
你(nǐ)可(kě)能還(hái)沒有(yǒu)注意到,圖像也是高(gāo)級驗證的潛在絆腳石。除了結尾斜線,高(gāo)級驗證也要求用alt标簽來(lái)描述圖像,如alt= ”Scary vampire picture”.
搜索引擎也靠alt标簽來(lái)識别網頁上(shàng)的圖像,所以無論怎樣加上(shàng)alt标簽總是好的。
8、未知實體(tǐ)數(shù)據
實體(tǐ)數(shù)據是又一個(gè)影(yǐng)響驗證的易犯錯誤。我們可(kě)以考慮用适當的編碼字符來(lái)代替“&”等符号。entire list中列出在XHTML版塊設計(jì)中可(kě)用的适當的編碼字符實體(tǐ)數(shù)據。
9、不良嵌套
嵌套就是元素裏又包括元素,如下所示:
<div><strong>Sweet!</strong></div>
我們容易混淆嵌套元素的順序。例如在div标簽前啓動strong标簽,但(dàn)又先關閉div标簽。這可(kě)能不會(huì)改變版塊布局,但(dàn)卻會(huì)使你(nǐ)的版塊設計(jì)失效。
10、缺少(shǎo)“title”标簽
盡管這看上(shàng)去是一個(gè)很(hěn)明(míng)顯的錯誤,很(hěn)多(duō)程序員(包括我自己)還(hái)是經常會(huì)在“head”版塊中遺漏title标簽。當你(nǐ)看到“missing a required sub-element of HEAD”(缺少(shǎo)HEAD的必要子元素)時(shí),才會(huì)發現自己忘記添加title标簽了。
*請(qǐng)認真填寫需求信息,我們會(huì)在24小(xiǎo)時(shí)內(nèi)與您取得(de)聯系。