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