【问题标题】:HTML 5 semantic tagsHTML 5 语义标签
【发布时间】:2018-11-09 16:38:20
【问题描述】:

我已经阅读了 W3C、WHATWG 和 MDN 上的一些语义元素,但我仍然有些不清楚。我也去了this article, on Sidebar and Aside are different!

我有几个基本问​​题,或者确认我理解我所阅读的内容:

  • aside 元素不是侧边栏吗?

  • 在HTML5中,我们可以使用语义和div标签吗?

  • 当没有语义标签可以使用时,div标签在HTML5中是否可以接受(这可能和上面的问题一样)?

  • 语义main元素中是否可以嵌入其他语义标签,例如tablesectionarticleaside,但不限于?

【问题讨论】:

    标签: html semantic-markup


    【解决方案1】:

    请记住,语义标签只是使代码更易于阅读和标准化页面的一种方式。

    这是因为之前大多数用户只会定义 divs,然后定义 class 来描述其角色,例如 navfooterheader 等。

    对于您的第一个问题;不,aside 元素本身并不代表“侧边栏”。它仅表示与主要内容相关的内容,但它不是页面主要主题的一部分。你可以用它来包装侧边栏的内容(它本身就是一个 UI 组件),但你也可以用它来做其他事情。

    来自the HTML5 specification

    aside 元素表示页面的一部分,该部分由与aside 元素周围的内容相切相关的内容组成,并且可以被视为与该内容分开。在印刷版式中,此类部分通常表示为侧边栏。

    该元素可用于印刷效果,如拉引号或 侧边栏、广告、导航元素组和其他 被视为与页面主要内容分开的内容。

    关于你的第二个问题。

    是的,在 HTML5 中,您可以随时使用divs 或语义标签,但鼓励您尽可能使用语义;如果没有其他标签可以用来定义文档的一部分,那么使用div 没有问题。您可以互换使用它们,最后,它们中的大多数像mainsectionfooter 等只是divs 使用不同的名称以便于阅读。

    【讨论】:

    • 只是回顾你的答案的第一部分,旁边可以用作侧边栏,但它也有其他用途。您提供的 HTML5 Spec 链接中说明了这一点。谢谢你的回答。一些网站对如何使用这些元素并不是很具体。有时这让我有点困惑。
    • 最后请记住,您可以将任何您想要的内容放入这些 HTML 标记中,侧边栏本身是一个 UI 元素,您也必须使用 CSS 构建,而 html 标记没有为您放入的内容提供任何特殊格式;我会说aside 标签的最佳用途类似于您在 StackOverflow 右侧看到的“相关”部分以及其他问题
    • 所以如果我在做一个两列布局侧边栏和主要内容。如果侧边栏更多用于导航网站,最好使用
    • 完全正确,实际上,如果您将其中一列用于网站的主导航,我会将导航链接包装在 nav 标记内,可能类似于 <div class="mySidebar"><nav>List of links here</nav></div>
    【解决方案2】:

    这总是引起很大的混乱。我是the original specification's author - Ian Hickson - on the subject in 2009(他对 Tab Atkins Jr 制作的 cmets 的回复用粗体字表示):

    1. <aside> 的名字也同样糟糕。名称本身和 将其描述为“侧边栏”内容显然几乎领先 每个人都误以为它是为了无处不在的网站侧边栏。

    是的。

    一项非正式调查显示,该聊天中至少有 3 人(我 包括)立即尝试以这种方式精确地滥用<aside> 当我们第一次听说它,当我和另一个人讨论这个问题时 朋友在聊天中他的回答大致是“他们有什么困惑? footer 用于站点页脚,aside 用于侧面板”。

    这是正确的解释。

    【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签