2011-01-26 106 views
22

可能重複:
Does <STYLE> have to be in the <HEAD> of an HTML document?爲什麼W3C上的HTML <body>標記內的標記不能被<style>驗證?

我已經開發了一個CMS系統團隊的一部分。

我們希望能夠以驗證W3C標準的方式將<style>標籤插入到HTML頁面的<body>之內,因爲驗證是我們SEO顧問的要求。

風格標記在所有瀏覽器中的身體標記中都能很好地運行,但它拒絕驗證。

+0

您正在使用哪種文檔類型? – birukaze 2011-01-26 10:35:38

+13

「,因爲驗證是我們SEO顧問的要求」 - 我想我已經發現了你的問題,就在那句話的最後兩個單詞中。 – 2011-01-26 10:45:33

回答

25

HMTL DTD不允許它,因此它不驗證。無所謂,所有瀏覽器都支持它。

+0

在所有情況下?你確定? – 2011-01-26 10:54:59

+1

而且它們在樣式元素放置在身體內部的任何地方都表現一致? – RichardTheKiwi 2011-01-26 11:25:58

0

你在對什麼進行驗證? HTML,XHTML Transitional,XHTML嚴格嗎?

可能是因爲內聯樣式在XHTML嚴格中無效。您需要改爲使用class="foo",並在CSS文件中定義foo。

2

從字面上看,<body>標記內的<style>標記將不會被驗證,因爲所有的HTML規範都說它不能在那裏。

至於爲什麼規格說,我不知道。這個要求仍然在最新的HTML規範中,最近在現實世界中被以前的規範禁止的東西(例如在<style>標籤上省略type屬性)已被允許,所以我假設必須有一個原因爲什麼要求仍然存在。

我想有些情況下,在身體中包含<style>標籤會使頁面渲染變得更難/更慢/更不可靠。

4

<style>元素包含適用於整個文檔的元數據。這是<head>元素設計包含的內容。對他們來說,生活在頭腦中是有道理的,所以這就是規範要求的地方。