我想使用语义标记来强调每个项目的重要性或优先级。
这是我的意思的一个例子。
<ul itemscope itemtype="http://schema.org/ItemList">
<h2 itemprop="name">Wish List</h2><br>
<li itemprop="itemListElement">Google glass</li>
<li itemprop="itemListElement">Galaxy S4</li>
<li itemprop="itemListElement">MacBook Pro</li>
</ul>
我正在考虑使用标题标签,但我不确定这是否正确使用。 e.g
<ul itemscope itemtype="http://schema.org/ItemList">
<li itemprop="itemListElement"><h6>Least Important</h6></li>
<li itemprop="itemListElement"><h1>Most Important</h1></li>
</ul>
我只是在寻找一个关于是否有正确的方法来做这个的建议?可能是微观数据,微格式还是RDFa?
答案 0 :(得分:2)
你不应该这样使用标题。标题内容很重要,是的,但这并不意味着重要内容应该是标题。您的第一个示例无效(列表可能只包含li
元素),您的第二个示例与文档大纲混淆。
strong
element代表“对其内容非常重要”。您可以通过对同一内容使用多个strong
元素来提高重要性:
一段内容的相对重要性由其祖先
strong
元素的数量给出;每个strong
元素都会增加其内容的重要性。
HTML5规范也有一个这样的例子:
<p>
<strong>Warning.</strong> This dungeon is dangerous.
<strong>Avoid the ducks.</strong> Take any gold you find.
<strong><strong>Do not take any of the diamonds</strong>,
they are explosive and <strong>will destroy anything within
ten meters.</strong></strong> You have been warned.
</p>
(请注意<strong>Do not take any of the diamonds</strong>
嵌套在另一个strong
元素中)
所以这是HTML5中的正确方法。
关于您的示例:如果您有一个从最少到最重要(或相反)排序的心愿单,您应该使用ol
而不是ul
,因为订单有意义且重要。所以你的愿望清单看起来像:
<ol reversed>
<li><!-- least important item --></li>
<li><!-- another not-soo-very important one --></li>
<li><strong><!-- important --></strong></li>
<li><strong><!-- more important than the previous one, but not that much of a difference --></strong></li>
<li><strong><strong><!-- most important item --></strong></strong></li>
</ol>
(如果没有按照这种方式排序,请使用ul
并相应地使用strong
元素。)
现在,您可以使用RDFa或Microdata来增强此功能。因此,您需要一个合适的词汇表。我什么都不知道。也许你可以利用某种评级词汇?你可以给每个项目一个分数/等级,比如你想拥有它多少。
海龟的理论范例:
myWishlistItems:1 ex:hasImportance 0.9
myWishlistItems:2 ex:hasImportance 0.85
myWishlistItems:3 ex:hasImportance 0.7
myWishlistItems:4 ex:hasImportance 0.7
myWishlistItems:5 ex:hasImportance 0.7
myWishlistItems:6 ex:hasImportance 0.2
替代方案:说明内容中的语义,例如:将重要性分组。
您可以使用dl
,例如:
<section>
<h1>My wishlist</h1>
<dl>
<dt>MUST HAVE!</dt>
<dd>…</dd>
<dd>…</dd>
<dt>Would be very cool</dt>
<dd>…</dd>
<dd>…</dd>
<dt>I like that, sometimes</dt>
<dd>…</dd>
<dd>…</dd>
</dl>
</section>
或带有ol
元素的section
,因此您可以使用分组标题,例如:
<section>
<h1>My wishlist</h1>
<ol>
<li>
<section>
<h2>MUST HAVE!</h2>
<ul>
<li>…</li>
<li>…</li>
</ul>
</section>
</li>
<li>
<section>
<h2>Would be very cool</h2>
<ul>
<li>…</li>
<li>…</li>
</ul>
</section>
</li>
<li>
<section>
<h2>I like that, sometimes</h2>
<ul>
<li>…</li>
<li>…</li>
</ul>
</section>
</li>
</ol>
</section>
答案 1 :(得分:1)
如果您想要一个具有多个优先级的比例,那么在html中无法做到这一点。使用标题会使outline混乱,其方式显然是“非语义”。它也许不值得尝试在RDF中表达。什么会消耗它?也许你有更多的细节,这将更多地阐明这一点......
由于无法在HTML元素或属性中表达,因此所有读者都无法访问这些数据。您知道如何使用一系列颜色设置项目样式,但屏幕阅读器不会大声读取这些颜色。
您可以将此简化为有序列表 - 按优先顺序排列的项目。或两个重要级别,其中使用<strong>
突出显示一些关键项目。
(如果您使用HTML5规范字面,您可以多次嵌套<strong>
以获得更高的优先级。但是您的用例不太可能支持。不在当前屏幕中-readers,而不是在浏览器默认样式表中。所以我不认为这是合法用途。)