天天看點

必須放在HTML文檔head标記後,<style>必須位于HTML文檔的<HEAD>中嗎?</style>

10 個答案:

答案 0 :(得分:98)

style應該僅包含在文檔的head中。

除了驗證點之外,在style上使用body時可能感興趣的一個警告是flash of unstyled content。浏覽器會在顯示後顯示樣式的元素,使它們在大小/形狀/字型和/或閃爍上移動。這通常是工藝糟糕的表現。一般情況下,您可以将style放在任何您想要的地方,但盡可能避免使用它。

HTML 5引入了scoped屬性,允許style标記包含在正文的任何​​位置,但随後又将其删除。

答案 1 :(得分:19)

雖然其他答案都是正确的,但我很驚訝沒有人解釋哪裡标準不允許head之外的樣式。

是的,我知道。 DTD難以閱讀。

這是STYLE元素出現的唯一地方,是以隐含地在其他地方無效。

答案 2 :(得分:18)

根據最新的WhatWG和W3C規範,是的,style元素必須始終位于head。有一段時間,規範包含scoped元素的style屬性,當存在時,允許将它們放置在正文中的元素内,以僅設定該元素的後代的樣式...但該特征從不使它成為任何真正的浏覽器(至少不需要通過開發人員标志啟用)并從兩個規範"due to lack of implementer interest"中删除。是以,style元素現在隻允許在允許中繼資料内容的上下文中使用,而中繼資料内容隻是頭部。

(好吧,相當是真的 - 您可以合法地将中繼資料内容(包括style元素)放在body内的template元素中,但它如果你在支援模闆的浏覽器中,它實際上不會生效。這實際上隻是一個愚蠢的技術性。)

CTRL-Fing single-page spec顯示内容模型包含中繼資料内容的唯一進制素是head元素。

同時,latest W3C draft spec包含完全相同的措辭,但它們還列出了template元素的内容模型中的中繼資料内容。 (WhatWG以不同的方式概括template并将其内容模型列為nothing。)

WhatWG規範中的非規範性index of elements确認style元素的唯一允許父級是head或noscript元素。 (同一索引的W3版本錯誤地指出流内容可以包含

答案 3 :(得分:14)

他們不應該超越頭腦,但無論如何他們都會工作;雖然你可能會注意到快速閃爍。該網站不應該使用頭部以外的樣式标簽進行驗證,但這真的很重要嗎?此外,連結标簽也可以在頭部以外工作,即使它們不應該也是如此。

答案 4 :(得分:4)

與其他回複一樣,它實際上并不需要在那裡。但是,它不會驗證。在這種情況下,這可能或不重要,但請記住,html的渲染完全取決于浏覽器。據我所知,今天使用的所有浏覽器都支援将它置于腦外,但是你不能保證将來的浏覽器和未來的浏覽器版本。

堅持标準,你就更安全了。非常讨論會有多安全。

答案 5 :(得分:3)

HTML5.2 W3C建議,2017年12月14日(不是上面提到的早期草案)說,您可以加入

答案 6 :(得分:3)

内的任何地方的樣式标記都不會使用W3C規則進行驗證。

答案 7 :(得分:2)

根據此網站,HTML5.1(草案中)和WHATWG允許将

浏覽器似乎也支援了很長一段時間。根據StackOverflow的回答,Firefox 3 +,IE6 +,Safari 2+和Chrome 12+支援它:

答案 8 :(得分:1)

根據HTML 5.2規範(草案中),樣式标記僅允許在文檔的頭部。

樣式元素僅限于出現在頭部

文檔。

答案 9 :(得分:-1)

您可以在頭部或身體部分内使用樣式标記,也可以在html标記之外使用樣式标記(不建議使用外側html)。實時項目很多時候你可以看到他們在html标簽旁邊使用樣式标簽