以下哪一项是构建页面的正确方法:
1)h1仅限于header
<header>
<h1>Site title</h1>
<nav>...</nav>
</header>
<section>
<h2>Page title</h2>
</section>
Run Code Online (Sandbox Code Playgroud)
如果我仅使用h1内部header作为网站的标题,则每个页面都将具有相同的h1标记内容.这似乎没有很多信息.
2)h1in header和section,用于站点和页面标题
<header>
<h1>Site title</h1>
<nav>...</nav>
</header>
<section>
<h1>Page title</h1>
</section>
Run Code Online (Sandbox Code Playgroud)
我也看过h1两次header和section标签中使用不止一次的例子.但是,同一页面有两个标题是不是错了?此示例显示了多个标题和h1标记http://orderedlist.com/resources/html-css/structural-tags-in-html5/
3)h1仅在section,强调页面标题
<header>
<p>Site title</p>
<nav>...</nav>
</header>
<section>
<h1>Page title</h1>
</section>
Run Code Online (Sandbox Code Playgroud)
最后,W3似乎建议h1在主section元素中使用,这是否意味着我不应该在header元素中使用它?
章节可能包含任何等级的标题,但强烈建议作者仅使用h1元素,或者使用适当等级的元素作为该部分的嵌套级别.
在CSS中,相邻的垂直边距通常会相互“折叠”(即,元素之间的垂直间距将等于最大的边距,而不是边距的总和)。
但是,fieldset元素与大多数其他元素不同,不允许其子元素上的边距与同级元素上的边距一起折叠:
<div>Before div</div>
<div style="margin:0; border:0; padding:0; background:#ccc;">
<div style="margin:20px 0;">This div has a top and bottom margin, which has collapsed outside of the parent div.</div>
</div>
<div>After div</div>
<div>Before fieldset</div>
<fieldset style="margin:0; border:0; padding:0; background:#ccc;">
<div style="margin:20px 0;">This div has a top and bottom margin, but the parent fieldset prevents it from collapsing.</div>
</fieldset>
<div>After fieldset</div>
Run Code Online (Sandbox Code Playgroud)
我认为(但不确定),这是因为该字段集正在创建一个新的块格式设置上下文-CSS规范当前未定义字段集是否应该,但是HTML5规范说它“期望”它们。
有什么方法可以防止字段集阻止孩子和兄弟姐妹之间的边距崩溃?
我经常将div用于样式布局(没有内容的标记段,专门用于设计)和站点上的包装。这么说,为什么不应该将节用于此任务?
节本身是否具有固有的语义含义,因此不鼓励将其用于包装程序?
我使用的几乎每个页面都有某种包装或样式布局。想逐步淘汰divs,我想知道部分是否可以用于包装器,并且在语义上仍然正确。