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