作為網站技術開發人員而言, 往往是站在自己的開發角度來實 施網站佈署 (讀取資料及開發的方便性等等), 而不是站在網站訪問者與搜尋引擎角度。因此大部分的網站在瀏覽方面不夠直觀或是方便, 特別是現在 w3c 的規範, 更是在大部分的網站開發人員腦裡一片空白。何況百度 、 google 、 msn 、 yahoo 等專業搜尋引擎更有自己的搜尋規則及判斷網頁等級技術, 所以網站要最佳化, 最佳化的目的只有一個:符合標準, 符合蜘蛛爬行的標準, 更重要的是符合網站訪問者瀏覽的方便及易用性。

 

什麼是 W3C 標準

W3C 其實就是 World Wide Web Consortium, 全球全球資訊網聯盟的簡稱。 W3C 的主要職責就是確定未來全球資訊網的發展方向, 並且制定相關的推薦 (recommendation, 由於 W3C 是一個民間組織, 沒有約束性, 因此只提供建議) 。 HTML4.01 規範建議 (HTML4.01 Specification Recommendation) 就是由 W3C 所制定的。它還負責制定 XML,MathML 等其他網路語言規範。

 

怎樣透過 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 定義樣式的必須改成類引用。

111
222

如果不用 W3C 來檢測的話,在 CSS 設計裡是允許這樣做的。

那是程式的角度不能相同,CSS 上是可以相同的!

之前就是相同的產生問題,後面就改成類引用了!

6 、不可省略雙引號或單引號。

a) 這個是指屬性,標準是雙引號~

單引號也能透過驗證。

7 、標籤之間不可錯位巢狀。

原文連結:WordPress 官方網站

這是不允許的。

8 、所有的標籤都使用小寫。

9 、 FLASH 的標籤程式碼中不能含有, 必須採用其它的方法實現。

10 、所有的標籤中含有的屬性必須有值 (官方的說法) 。

11 、標籤必須配對完成, 單標籤必須以/關閉

12 、 JS 和 CSS 外部引入檔案必須加上型別定義。

13 、所有的樣式全部寫在外部檔案。用類名定義。在使用的地方引用。

14 、頁面上的一些特殊字元必須用 HTML 程式碼來標識. 如 “&” 寫成 “&“

 

沒透過 W3C 標準驗證的原因

每次修正程式碼後要重新整理程式碼,使它們重新生效——一個小錯誤常常會引發之後整頁的連串錯誤。因此如果操作不當,“修正錯誤” 也可能引發更多錯誤。每次修正後使程式碼重新生效,這樣就可以確保完全解決問題。

知道了上面這些基本的異常情況,下面就來看看版面設計無效的幾個原因。

1 、 div 標籤未關閉

這是版面設計失效的最常見原因之一。當我們瞭解到這是多少精緻的版塊設計失效的罪魁禍首時,總會大吃一驚。開啟的 div 標籤是最普遍的版塊設計失誤之一,也是最難診斷的失誤之一。驗證程式有時會指向錯誤的開啟 div 標籤,診斷時就像大海撈針一樣麻煩。

2 、麻煩的 embed 標籤

九十年代早期,Microsoft 和 Netscape 的瀏覽器開始能夠辨認非標準的獨有字型。遺憾的是這意味著 W3C 驗證程式還不能識別某些關鍵 HTML 標籤,如 “embed”,即使這些標籤已經被廣泛使用。如果確實希望得到嚴格的 DOCTYPE(檔案型別) 驗證,就只能放棄巢狀。

如果同時想要生效的版面設計和嵌入式媒體,可以試試 Flash Satay 方法。

3 、不當的 DOCTYPE 宣告

不宣告 DOCTYPE,或者在檔案開始錯誤宣告 DOCTYPE,也是一個常見錯誤。根據一般經驗,Strict DOCTYPE 是大家追求的最高階驗證。 Strict validation 表明你的網頁能夠在所有瀏覽器上都得到最佳展示。 Strict 宣告程式碼如下:

4 、結尾斜線

如果你的網站不能驗證,很有可能是在程式碼的某個地方漏寫了結尾斜線。我們很容易忽略結尾斜線之類的東西,特別是在 image 標籤等元素中。例如:

在嚴格的 DOCTYPE 中這是無效的。要在 img 標籤結尾處加上 “/” 以解決此問題。

5 、 Align 標籤

如果 DOCTYPE 被設為 Transitional,你就會使用 “align” 標籤,但如果要求更高一點希望得到 Strict 驗證,你會看到很多錯誤。 Align 是另一個不可用於版面設計的標籤。可以嘗試用 “float” 或者 “text-align” 來代替 align 轉換元素。

6 、 JavaScript

如果已經宣告 Strict DOCTYPE,就需要在 JavaScript 中覆蓋 CDATA 標籤。驗證程式的這一方面難倒了很多程式設計師,因為網站傾向於為廣告和追蹤指令碼使用嵌入的 JavaScript 。如果必須用到 JavaScript,可以在其前後加上如下標籤:

7 、影象需要 “alt” 屬性

你可能還沒有注意到,影象也是高階驗證的潛在絆腳石。除了結尾斜線,高階驗證也要求用 alt 標籤來描述影象,如 alt= ”Scary vampire picture”.

搜尋引擎也靠 alt 標籤來識別網頁上的影象,所以無論怎樣加上 alt 標籤總是好的。

8 、未知實體資料

實體資料是又一個影響驗證的易犯錯誤。我們可以考慮用適當的編碼字元來代替 “&” 等符號。 entire list 中列出在 XHTML 版塊設計中可用的適當的編碼字元實體資料。

9 、不良巢狀

巢狀就是元素裡又包括元素,如下所示:

Sweet!

我們容易混淆巢狀元素的順序。例如在 div 標籤前啟動 strong 標籤,但又先關閉 div 標籤。這可能不會改變版塊 Elementor 佈局,但卻會使你的版塊設計失效。

10 、缺少 “title” 標籤

儘管這看上去是一個很明顯的錯誤,很多程式設計師 (包括我自己) 還是經常會在 “head” 版塊中遺漏 title 標籤。當你看到 “missing a required sub-element of HEAD”(缺少 HEAD 的必要子元素) 時,才會發現自己忘記新增 title 標籤了。