HTML中的语义结构 - 字幕(Pre-HTML5)

Jon*_*ono 13 html semantic-markup

我是HTML的新手,想要制作语义正确的HTML,但我发现很难处理似乎只是标题,列表和段落的内容.

特别是,我找不到一个对字幕有意义的地方.我正在写一个博客网站,所以我们以此为例:

博客标题
是世界上最好的博客

post_title1
post_title2
post_title3

语义上的'博客标题'是h1.对我来说,post_titleX是h2是有意义的,但是对于副标题感觉不对 - "世界上最好的博客"被归类为与它们相同的级别.

You*_*You 15

自从五年前首次发布这个答案的最新工作草案以来,规范已经发生了很大的变化.正如@Andre Figueiredo在评论中强烈指出的那样,已发布的HTML5规范在这个具体用例中非常明确(重点补充):

h1- h6元素不得用于标记副标题,副标题,替代标题和标语,除非是作为新章节或小节的标题.

简而言之,在p元素中使用适当分类的header元素:

<header>
    <h1>A BLOG TITLE</h1>
    <p class="tagline">the best blog in the world</p>
</header>
Run Code Online (Sandbox Code Playgroud)

在HTML5中,有一个明显的解决方案:

<header>
    <h1>A BLOG TITLE</h1>
    <h2>the best blog in the world</h2>
</header>
Run Code Online (Sandbox Code Playgroud)

当使用HTML4时,我个人倾向于替换h2with p class="tagline"或类似的东西.

编辑:为了激发h2HTML5 的使用,想想Strangelove博士的标题:

<h1>Dr. Strangelove</h1>
<?>Or: How I Learned to Stop Worrying and Love the Bomb</?>
Run Code Online (Sandbox Code Playgroud)

做了p件有意义吗?不是真的 - 这不是一个段落,它是一个标题.不h2工作的,是什么?不,我们可能会将它与文本本身的字幕混淆.那么我们该怎么办?我们使用h2与组它h1使用header元素,从而摆脱关于文本字幕的模糊性.

  • 对于HTML5,这确实会产生错误的轮廓.以下所有内容都属于"世界上最好的博客"的范围,通常不适用于副标题.您应该将这两个标题括在[`hgroup`元素](http://www.w3.org/TR/html5/sections.html#the-hgroup-element)中. (7认同)
  • 使用W3C推荐的<p>标签获取字幕并使用CSS设置样式.在这里阅读更多内容:http://www.w3.org/html/wg/drafts/html/master/common-idioms.html#common-idioms - 并且正如@jscheel所说,hgroup已经从规范中删除了http://lists.w3.org/Archives/Public/public-html-admin/2013Apr/0003.html (5认同)

Bol*_*ock 7

我只想使用一个段落元素,它对我来说并不像使用标题元素那样奇怪:

<p class="subtitle">the best blog in the world</p>
Run Code Online (Sandbox Code Playgroud)

你回答("你的答案","他的回答"?)如果你使用HTML5进行标记肯定是要走的路.

  • 但副标题是(顾名思义)标题,而*应该是*h2`元素.在HTML4中,我们不能像HTML5那样关联(或耦合)`hX`元素,我们不得不求助于这种稍微不那么语义化的解决方案. (2认同)