html - 在有序列表中使用年份是否有比 value 属性更好的方法?

标签 html html-lists semantics

对于都有年份的投资组合项目列表,我假设有序列表是语义上的方法,因为它是按年份排序的列表。但是,我不希望该值是从 1 开始的数字,而是创建该项目的年份。为了达到这个结果,我写了以下内容。

<ol>
  <li value="2015">Last made item</li>
  <li value="2015">Item before that</li>
  <li value="2014">Earliest item</li>
</ol>

但是,这个

  • 颠倒 <ol> 的自然顺序的;
  • 多次使用同一标记;

所以我认为这并不是实现这一目标的最佳方法。所以我想知道:

  1. 您对如何改进这一点有什么建议吗?
  2. 还有其他理由不应该这样做吗?

编辑:请注意列表已排序,但我希望标记是创建项目的年份。使用前面提到的方法会发生这种情况(也请参见 this Fiddle ),但我怀疑这在语义上是最好的方法。

最佳答案

1。您对如何改进这一点有什么建议吗?

替代方案A

一个好的替代方案是这样的结构:

<article>
  <time datetime="2015">2015</time>
  <h1>Last made item</h1>
  <p>Description</p>
</article>
<article>
  <time datetime="2015">2015</time>
  <h1>Item before that</h1>
  <p>Description</p>
</article>
<!-- etc. -->

这假设列表中的项目可以表示为“内容的独立项目”( W3C specification )和投资组合项目(我的问题中的项目类型)满足本规范。

替代方案B

<ol>
  <li>
    <time datetime="2015">2015</time> Last made item
  </li>
  <li>
    <time datetime="2015">2015</time> Item before that
  </li>
  <!-- etc. -->
</ol>

如果需要,您可以使用 CSS 删除标记。感谢TotempaaltJ对于这个替代方案。

无论哪种方式,年份现在都是机器可读的时间,请参阅 MDN .

This element is intended to be used presenting dates and times in a machine readable format. This can be helpful for user agents to offer any event scheduling for user's calendar.

阅读Bruce Lawson's post on the time tag看到这个datetime符号有效/被允许。

Now, “fuzzy dates” are possible: <time datetime="1905"> means the year 1905


2。还有其他理由不应该这样做吗?

当使用<li value="year">时你失去了这个数字作为一年的意义。


其他想法

@Michael_B's answer让我更深入地了解了<ol>的含义和<ul>和@tibzon gave an examplereversed有序列表的属性,请参阅his fiddle .

关于html - 在有序列表中使用年份是否有比 value 属性更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31662740/

相关文章:

html - 字体在桌面上更轻,但在移动设备上不是

html - 是否可以在电子邮件中折叠/展开 DIV?哪些客户支持这个?

linux - 为什么在支持 X 线程的硬件中使用 X 线程?为什么不是 X-1 线程?

javascript - 让所有没有某个类(class) child 的 parent

javascript - 未注册的 HTML 自定义元素和已注册的 HTML 自定义元素有什么区别?

html - 选择器 li + li 麻烦

javascript - 将一些 Javascript 重新用于类似的 DOM 元素

html - 动态缩放网页列表元素以具有 100% 的宽度和相等的缩放高度

Javascript if 语句 if (ball.style.left === '0px') {

prolog - 为什么双重否定在 Prolog 中不绑定(bind)