<section>
和<div>
有什么区别?难道我们不是在两种情况下都定义部分吗?<section>
和<div>
有什么区别?难道我们不是在两种情况下都定义部分吗?<section>
用于将内容分组(即与单个主题相关),并且应出现在页面大纲中。
另一方面,<div>
除了在其class
,lang
和title
属性中发现的任何含义外,没有传达任何含义。
因此,不:在HTML中使用<div>
并不能定义一个节。
从规范中得到以下描述:
<section>
<section>
元素表示文档或应用程序的通用部分。在这种情况下,部分是指内容的主题分组。每个section
都应该被标识出来,通常是通过在<section>
元素的子项中包括标题(h1-h6元素)实现。章节,选项卡对话框中的各个选项卡页面或论文的编号部分都是节的示例。网站的主页可以分成介绍、新闻项目和联系信息等部分。
...
<section>
元素不是通用容器元素。当仅需要元素进行样式设置或作为脚本方便时,作者被鼓励使用<div>
元素。通用规则是,只有当元素的内容将明确列在文档的大纲中时,<section>
元素才是合适的。
(https://www.w3.org/TR/html/sections.html#the-section-element)
<div>
<div>
元素没有任何特殊含义。它表示其子元素。它可以与class
、lang
和title
属性一起使用,以标记连续元素组中通用的语义。注意:强烈建议作者将
<div>
元素视为最后一种选择的元素,即在没有其他更合适的元素时再使用。<div>
元素的替代使用比<div>
元素具有更好的可读性和易于维护性。
(https://www.w3.org/TR/html/grouping-content.html#the-div-element)
在辅助技术的地标导航中,节与文档大纲或地标列表最相关。为了出现在文档大纲或地标列表中,它们需要一个名称,可以通过aria-label
、aria-labelledby
或title
进行指定:
<section aria-labelledby="s3-h2">
<h2 id="s3-h2">Introduction</h2>
…
例如,在Mac上,VoiceOver可以提供一个概述,以便直接导航到该部分。section
与div
的区别,包括参考了这个答案之后,我得出的结论是它们其实是完全相同的元素。W3C表示,div
元素"代表了它的子元素"。那么,section
元素不也是这样吗?是的,section
暗示着它的子元素被分组在一起,但是只要将子元素放在div
里,你也是在将它们分组在一起。至少我是这么做的,不知道你们怎么看。 - trysissection
和div
的区别”——不要想太多。HTML并不复杂。“通过将子元素放在div
中,你也确实是在将它们分组。” 根据HTML规范,你并没有这样做。你是为了样式方便、JavaScript方便或其他W3C尚未考虑到的原因而将它们包裹在div
中,但这并不表示对读者来说子元素是一组。 - Paul D. Waite<p>这是一个段落</p>
或<h2>这是一个二级标题</h2>
。因为<div>
没有添加任何含义,所以只有在没有其他HTML元素可以为相关文本添加适当的含义时,才会使用它。 - Paul D. Waite<section>
标记一个部分,<div>
标记一个没有相关语义的通用块。
仅仅是观察 - 没有找到任何证明这一点的文件
如果一个部分包含另一个部分,则内部部分中的h1标题以比外部部分中的h1标题更小的字体显示。 当使用div代替section时,内部div h1标题会显示为h1。
<section>
<h1>Level1</h1>
some text
<section>
<h1>Level2</h1>
some more text
</section>
</section>
-- Level2标题的字体比Level1标题小。
使用CSS为h1标题着色时,内部的h1标题也会被着色(表现为普通的h1标题)。在Firefox 18、IE 10和Chrome 28中都有相同的行为。
<div> Vs <Section>
<div>:
HTML的
<article>
或<nav>
)适合时才应使用它。
<section>:
HTML的
<div>:
浏览器支持
<section>:
浏览器支持
表格中的数字指定了完全支持该元素的第一个浏览器版本。
在这方面,从纯CSS或DOM角度来看,div仅与相关,而section对于语义和近期的搜索引擎索引也是相关的。
<section>
元素被定义为一组相关元素的块。
<div>
元素被定义为子元素的块。使用section标签代替div元素时,要注意不要过度使用。 section标签应该定义在body上下文中的重要区域。从语义上讲,HTML5鼓励我们按照以下方式定义文档:
<html>
<head></head>
<body>
<header></header>
<section>
<h1></h1>
<div>
<span></span>
</div>
<div></div>
</section>
<footer></footer>
</body>
</html>
这种策略可以帮助网络机器人和自动化屏幕阅读器更好地理解您内容的流程。该标记清晰地定义了您的主要页面内容所在的位置。当然,标题和页脚通常在网站内的数百甚至数千个页面中是常见的。因此section标签应仅用于说明唯一内容所在的位置。在section标签中,我们应该继续使用HTML标签来控制内容,这些标签在层次结构中较低,例如
在大多数简单的页面中,只应该有一个section标签,而不是多个。还请考虑其他有趣的类似于section的HTML5标签。在文档流中使用article、summary、aside和其他标签可以进一步增强我们定义HTML文档主要区域的能力。
main
标签,其中包含一个或多个section
标签。 - Chazy Chazsection
应该是 main
,div
应该是 article
,而 span
可能会是 section
(取决于它的作用)。 - Tom B<section>
可以使得代码更加整洁,有助于屏幕阅读器和搜索引擎优化(SEO),而 <div>
则更小巧且打字速度更快。总的来说两者几乎没有区别。此外,不建议在 <section>
中使用 <section>
,而应该将 <div>
放置在 <section>
内部。<div id="nav"> <div class="header"> <div id="footer">
,用于指示导航、页眉和页脚。因此,在html4中使用<div>
来定义网页的不同部分,但<div>
并没有特定的含义,因此html5引入了许多语义元素之一是<section>
,它提供足够的信息给屏幕阅读器、搜索引擎和浏览器等,以识别网站的不同部分。<div>
来定义网站部分,则难以阅读。<div>
作为容器。