2012-12-03 53 views
4

前一段時間,我對HTML5使用w3c validator,我正在試驗一個標籤來替換棄用的<tt>標籤。我打這個小例子:HTML5:參考其他標籤中的有效標籤

<!DOCTYPE html> 
<html> 
<head><title>Valid tags inside other tags</title></head> 
<body> 

<p>Inside paragraph you cannot use <pre>preformated text</pre></p> 

</body> 
</html> 

而得到這個錯誤:

Line 6, Column 66: No p element in scope but a p end tag seen.

但是,當我改變了<pre>標記爲<code>標籤,有人提出任何錯誤。

我想這是因爲你不能在段落內部預先設置好文本,但是我沒有運氣尋找正則表達式或者可以指向其他標籤內的有效標籤的東西。

任何人都可以指點我這樣的資源?

編輯:

原來,我吸在閱讀文件,我還沒有看塊級元素。所以,現在的問題是,我如何知道哪些是有效的內聯元素,以及如何在其他塊級元素內使用塊級元素?

+0

爲什麼你不能在「div」中包裝文本?也許這會幫助你:http://stackoverflow.com/questions/4291467/nesting-block-level-elements-inside-the-p-tag-right-or-wrong –

+0

@ eric.itzhak好的,我檢查它。 – ElderMael

回答

4

對於HTML5,blockinline的舊類別已被擴展並替換爲new content modelblockinline之間的區別現在只是真正重要的東西in CSS

如果你看看any particular element in the spec你會發現它有一個它所屬的content categories的列表,可以使用該元素的類別以及其後代允許的內容模型。

p element具有短語內容的內容模型,因此它不能包含pre element,因爲它只能用於需要預計流內容的地方。