[英]setting the top margin of the h1 element in the header does not work as expected
[英]Does the h1 need to be the first semantic element in a header tag?
我正在使用Chrome outliner擴展來檢查我的頁面的語義。 在文檔主標題標記中的h1之前有任何結構元素似乎是一個問題。 我認為順序無關緊要,但顯然它確實如此:
+Document Body
+Header
+nav
+h1 Main Navigation
+h1 MyPage
-Section
-Footer
是這樣的大綱:
Untitled Body
Main Navigation
MyPage
etc...
但是當h1是我標題中的第一個元素時:
+Document Body
+Header
+h1 MyPage
+nav
+h1 Main Navigation
-Section
-Footer
它的輪廓如下:
MyPage
Main Navigation
etc...
這是為什么? 是大綱車,還是我理解HTML5語義中的錯誤? W3C規范似乎沒有提到它: http : //dev.w3.org/html5/spec/Overview.html#the-header-element
在重新審視規范后,我同意h1不一定是第一個元素。 我懷疑問題在於您使用的Chrome擴展程序。
我通過這個HTML大綱工具運行了以下兩個場景,並收到了相同的結果(我的導航顯示在我的標題下):
在標題下使用h1第二個元素:
<body>
<header>
<h1>My Header</h1>
<nav><h1>My Navigation</h1></nav>
</header>
<section><h1>My Section</h1></section>
<footer></footer>
</body>
使用標題下的H1第一個元素:
<body>
<header>
<nav><h1>My Navigation</h1></nav>
<h1>My Header</h1>
</header>
<section><h1>My Section</h1></section>
<footer></footer>
</body>
為什么要在頁面標題之外定義另一個<h1>
標記? 大綱正在為你的頁面挑選兩個競爭標題,這可能就是被拋棄的原因。 從語義上講,頁面的主標題可以存在於頁面的<header>
部分內的任何位置,只要它的唯一性和定義主標題,盡管這不是<header>
部分或<h1>
的專有屬性。標簽(和意見不同於該描述,但它更健全)。 這里定義了正確的大綱http://www.w3.org/TR/html5/sections.html#outline 。
您可以使用您想要的任何組合編寫主標題部分,只要正確理解即可。 所以;
<header>
<nav>
<h1>Title of Page</h1>
<h2>Subtitle</h2>
</header>
沒問題,因為您可以正確理解頁面標題和頁面標題的各個部分。
這是一個在線大綱 ,可用於測試您的設計。 您的標題部分應首先高於其他所有部分。
根據規范 , <header>
不需要以<h1>
開頭。
標題元素通常包含節的標題(h1-h6元素或hgroup元素),但這不是必需的。 header元素還可用於包裝部分的目錄,搜索表單或任何相關徽標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.