2009-06-20 43 views
27
<!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:lang="en" lang="en"> 
<head> 
    <title>A webpage</title> 
</head> 
<body> 
    <p> 
    <form action="something.php" method="get"> 
    <input type="submit" value="Hello"/> 
    </form> 
</p> 
</body> 
</html> 
+4

不驗證頁面提出一些建議嗎? – 2009-06-20 17:15:35

回答

53

查看錯誤消息,當您嘗試與http://validator.w3.org

除此之外您還沒有指定一個字符編碼(以及它因此假設UTF-8)的警告,主要錯誤是,你能<p>不允許包含非內聯內容。您可以完全刪除<p></p>,或者將它們移動到<form>之內。

至於'爲什麼',這是因爲它是如何在模式中定義的,該模式定義什麼是和什麼是無效的XHTML。如果你看看this section of the XHTML definition,你會發現<p>只允許包含文本或'inline'(而不是'block')標籤。然而,<form>被視爲「塊」內容而不是「內聯」內容。

換句話說,表單可以包含段落,但段落不能包含表單。

+1

+1是唯一的答案(到目前爲止)實際上解釋了什麼問題 – 2009-06-20 18:28:44

1

根據this,這是因爲:8

線,柱44:文件類型不 不允許元件 「形式」 這裏;缺少 其中一個「object」,「ins」,「del」,「map」 開始標記✉ 所提到的元素不允許 出現在您放置它的上下文中 ;另外提到的 元素是 這兩個元素中唯一允許的元素,並且可以包含提到的 元素。這可能意味着 您需要一個包含元素,或者 可能是您忘記了 關閉了上一個元素。

一個可能的原因此消息是 所嘗試把一個 塊級元素(諸如「p」或 「表」)的內聯元件 (如「a」的內部,「跨度「或 」font「)。

第9行第40列:文檔類型確實是 這裏不允許元素「輸入」; 缺少「p」,「h1」,「h2」,「h3」, 「h4」,「h5」,「h6」,「div」,「pre」, 「address」,「fieldset」 「ins」,「del」 start-tag input type =「submit」value =「Hello」提到的 元素不允許出現在 您放置的上下文中; 其他提到的元素是 只有那些允許在那裏 和可以包含提到的元素。 這可能意味着您需要一個包含元素的 元素,或者您可能已經忘記關閉以前的 元素的 元素。

一個可能的原因此消息是 所嘗試把一個 塊級元素(諸如「p」或 「表」)的內聯元件 (如「a」的內部,「跨度「或 」font「)。

+0

+1:「...您試圖在內聯元素(例如」a「,」span「或」font「)中放置塊級元素(例如」p「或」table「) 「)。」 – 2009-06-20 18:37:28

-1

你不能把表格放在段落內。寫這樣的:使用W3C Markup Validator,它會告訴

<body> 
    <form action="something.php" method="get"> 
    <p> 
    <input type="submit" value="Hello"/> 
    </p> 
    </form> 
</body> 
+3

他問_WHY_它沒有驗證,沒有如何解決它。 – 2009-06-20 18:38:00

-1

嘗試的東西是最(X)HTML和CSS文件無效。

+4

我認爲他可能意識到這一點,因爲他已經知道它沒有驗證。他在問爲什麼它是無效的,而不是。 – 2009-06-20 18:35:15

+1

看到W3C驗證器很好地解釋了爲什麼它是無效的,我認爲這是解決問題最有效的方法。最好告訴某人如何解決問題,而不是僅僅給他們答​​案。 – DaveR 2009-06-21 10:33:51

-3

我用你的HTML代碼通過validator.w3.org進行了一次測試,結果是你需要交換P和FORM標籤以便它作爲有效的W3C 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:lang="en" lang="en"> 
<head> 
    <title>A webpage</title> 
</head> 
<body> 
    <form action="something.php" method="get"> 
    <p> 
     <input type="submit" value="Hello"/> 
    </p> 
    </form> 
</body> 
</html>