為什麼會出錯?
在上一節中我們我們在效驗我們的網頁時得到了一段出錯資訊,但是我們在整個網頁的製作過程中都是按照XHTML標準寫的啊。其實問題出在了網頁的“頭部”,下面我們就來解決這個問題。
<head>部分
在之前的教程中除了<title>標籤之外我們修改的都是<body>之間的內容,也就是顯示在頁面裡的內容。那麼XHTML中的<head>部分是做什麼的呢?其實在<head>部分我麼可以加入許多瀏覽器等軟體可以“看得見”的資訊。下面我們就介紹一些head部分常用的標籤。
注意:本節的標籤與屬性大多數難於記憶,事實上在我們在使用網頁製作軟體建立網頁的時候它們會自動產生。本節的目的是能夠瞭解這些標籤的含義,以在必要的時候可以做一些手工的修改。現在就開啟我們的“index.html”,在<head></head>中間插入如下代碼:
1.<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
這段代碼告訴瀏覽器我們的網頁使用的是gb2312中文字元編碼,沒有該段<meta>資訊正是上一次效驗時出現問題的原因之一。
2.<meta name="keywords" content="小學生,欺負同學,寒暑假作業,家長" />
這段代碼是為搜尋引擎寫的,content的內容就是index.html的關鍵詞。
請注意,<meta>標籤也是一個空標籤,別忘記加上/。<meta>標籤的作用還遠不只這些,不過在缺少實際應用的情況下,很難瞭解<meta>標籤的實際用處。如果想瞭解更多<meta>標籤的知識,可以到百度搜尋相關知識。
關於<head>標籤的說明
正如之前所說的,<head>部分的內容並不是為瀏覽者寫的,而是為瀏覽器和搜尋引擎寫的。因此<head>部分不應該含有任何在頁面中可視的的內容。
DTD
如果現在再次效驗我們的網頁,仍然會得到出錯資訊,提示找不到DTD檔案,那麼什麼是DTD檔案呢?簡單的說它就是在任何人(多數情況下是類似瀏覽器的軟體)想要讀取我們的檔案之前告訴他我們檔案是遵照哪一套規則來寫的。以效驗過程為例子,如果我們使用HTML4.01的DTD呢,效驗器就會認為我們是使用的HTML4.01的規則編寫的網頁,然後按照相應的規則來一行一行的效驗我們的代碼,最終返回效驗結果。
我們製作的網頁是使用XHTML的規則,當然要使用XHTML的DTD。不過正如我們前面提到的,XHTML的DTD也分為相對鬆散的過渡期DTD和要求相當嚴格的嚴格DTD。本教程中我們將要在網頁中聲明嚴格的DTD,如果您想瞭解更多關於DTD的內容需要學習XML,本教程中不做過多討論。
下面我們就為我們的網頁聲明DTD。開啟之前儲存的"index.html",在第一行(<html>標籤之前)輸入如下代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
並且在<html>標籤裡添加如下屬性:xmlns="http://www.w3.org/1999/xhtml"。這個叫做命名空間屬性,屬於XML範疇,我們這裡仍然不做過多的討論。
這段代碼的作用就是聲明我們的網頁是使用的xhtml1-strict.dtd。現在再將這個頁面提交給W3的效驗器,這次將返回一個“This Page Is Valid XHTML1.0 Strict!”的資訊。這表示我們的代碼中沒有任何錯誤,完全符合XHTML1的strict(嚴格)標準。當然了,實際工作中情況可能不總是如此,在實際的網頁設計過程中,總會有各種原因造成我們寫出不規範的代碼。這時效驗器就會給出錯誤報表,我們只需要按照提示修改代碼即可。