【发布时间】:2014-09-22 16:32:00
【问题描述】:
我有以下标记:
<div id="tabbed-content">
<ul>
<li><a href="#section1">Section 1</a></li>
<li><a href="#section2">Section 2</a></li>
</ul>
<div id="section1">
Section 1 is about (...).
</div>
<div id="section2">
Section 2 is about (...).
</div>
</div>
我想让标记更加语义化,因为显然 div 是 "thematic groupings of content"。
但是有一个问题。我不想将部分的标题放入部分标签中,而是将它们保留为选项卡。我意识到 HTML5 文档流及其呈现是我在这里混合的两个独立的东西,但我不确定如何在没有一些繁重的 CSS/JS 技巧的情况下解决以下问题:
<div id="tabbed-content">
<ul>
<li><h1 for="#section1"><a href="#section1">Section 1</a></a></li>
<li><h1 for="#section2"><a href="#section2">Section 2</a></a></li>
</ul>
<section id="section1">
Section 1 is about (...).
</section>
<section id="section2">
Section 2 is about (...).
</section>
</div>
最简单的解决方案是将标题放入部分中,然后将其隐藏,但这将违反Google guidelines。
【问题讨论】:
-
最简单的解决方案:忽略语义,就这一次。
-
@Scimonster:是的,我总能做到 :-)。但我认为标签是如此普遍,以至于必须有一些简单的方法来以语义方式实现它们。
-
您的问题中有错字(div-s 应该是部分)。你有没有想过使用microdata w/ the
metatag?有关微数据词汇表,请参阅 Schema.org。 -
看起来像
#section1 > h1, #section2 > h1(或内联)上的 CSSdisplay:none不会违反谷歌的指导方针(webmasters.stackexchange.com/a/18764)。这将是最好的语义友好方式。 + 如果你喜欢语义,你应该把<ul/>放在<nav/>中:) -
@Tyblitz:错别字已修复,谢谢。重新微数据 - 我看了一下,但我没有看到解决这个问题的方法。
标签: html semantic-markup