最近我去了w3schools New HTML5 Elements并发现了“section”和“article”标签。我的问题是你什么时候应该使用section,article或div标签,为什么当我使用section和article标签时文本会变小?像这样:
<section><h1>H1 tag in a section tag</h1></section>
<article><h1>H1 tag in an article tag</h1></article>
<h1>H1 tag in nothing</h1>
复制并粘贴到here。 (只是为了方便而把它放在那里)
答案 0 :(得分:24)
section
: section元素表示通用文档或应用程序 section ... section元素不是通用容器元素。什么时候 为了造型目的或为了方便起见,需要一个元素 脚本编写时,鼓励作者使用div元素。
<强> Helpful rules of thumb from Html5doctor: 强>
div
article
,aside
或nav
更合适,请勿使用article
代替联合内容article
: article元素表示由页面组成的组件 文档,页面,应用程序或站点中的自包含组合 这是为了可以独立分发或重复使用, 例如在联合。这可能是一个论坛帖子,杂志或 报纸文章,博客文章,用户提交的评论,以及 交互式小部件或小工具,或任何其他独立的内容项
当没有其他元素可以在语义上更好地描述它时使用div
,或者你需要一个语义无意义的钩子来进行样式化。
h1
看起来不同的原因是因为各个浏览器以不同的方式呈现它们。您可以跨浏览器规范化事物,并使用css reset处理默认浏览器样式表。
答案 1 :(得分:1)
这是在浏览器中预定义的。当我检查Chrome中的一个小h1标签时,我得到以下硬编码到浏览器中的样式表(“用户代理样式表”):
:-webkit-any(article,aside,nav,section) h1 {
font-size: 1.5em;
-webkit-margin-before: 0.83em;
-webkit-margin-after: 0.83em;
}
h1
的正常预定义样式表如下所示:
h1 {
display: block;
font-size: 2em;
-webkit-margin-before: 0.67em;
-webkit-margin-after: 0.67em;
-webkit-margin-start: 0px;
-webkit-margin-end: 0px;
font-weight: bold;
}
这意味着浏览器在h1
,h
之一内有article
元素(以及可能还有其他aside
元素)的预设等等。
您可以通过为这些案例定义自己的尺寸来防止这种情况发生。
答案 2 :(得分:0)
关于你的上一个问题(为什么当我使用section和article标签时文本会变小?),我认为这个事件有合理的理由。诸如section,Article,aside,nav之类的元素被视为Sectioning Elements。这些元素的主要特征之一是,在文档的大纲中,当浏览器面对它们时会出现新的缩进(以找出more)。所以根据你的示例代码:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<section><h1>H1 tag in a section tag</h1></section>
<article><h1>H1 tag in an article tag</h1></article>
<h1>H1 tag in nothing</h1>
</body>
</html>
它的大纲是(你可以使用这个online tools):
H1标签没有任何内容