使用 HTML5 语义标记搜索结果列表

2023-12-28

如果您只需要一些有用的东西,那么制作搜索结果列表(例如在 Google 中)并不难。然而现在,我想利用 HTML5 语义的优势来完美地做到这一点。目标是定义标记搜索结果列表的事实上的方式,该列表可能被任何未来的搜索引擎使用。

对于每一次点击,我想要

  • 按增加的数量对它们进行排序
  • 显示可点击的标题
  • 显示一个简短的摘要
  • 显示附加数据,例如类别、发布日期和文件大小

我的第一个想法是这样的:

<ol>
  <li>
    <article>
      <header>
        <h1>
          <a href="url-to-the-page.html">
            The Title of the Page
          </a>
        </h1>
      </header>
      <p>A short summary of the page</p>
      <footer>
        <dl>
          <dt>Categories</dt>
          <dd>
            <nav>
               <ul>
                  <li><a href="first-category.html">First category</a></li>
                  <li><a href="second-category.html">Second category</a></li>
                </ul>
            </nav>
          </dd>
          <dt>File size</dt>
          <dd>2 kB</dd>
          <dt>Published</dt>
          <dd>
            <time datetime="2010-07-15T13:15:05-02:00" pubdate>Today</time>
          </dd>
        </dl>
      </footer>
    </article>
  </li>
  <li>
    ...
  </li>
  ...
</ol>

我对此不太高兴<article/><li/>。首先,搜索结果本身并不是一篇文章,而只是一篇非常简短的摘要。其次,我什至不确定您是否可以将文章放入列表中。

也许是<details/> and <summary/>标签比<article/>,但我不知道是否可以添加一个<footer/>里面那个?

欢迎所有建议和意见!我真的希望每一个细节都完美。


1)我认为你应该坚持article元素,如

[t]he article元素代表一个 独立的组合物 文档、页面、应用程序或站点 其目的是 可独立分发或 可重复使用的[source] http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#the-article-element

您只有一个单独文件的列表,所以我认为这是完全合适的。博客的首页也是如此,包含多篇带有标题和大纲的帖子,每一篇都在单独的页面中article元素。此外,如果您打算引用文章的几句话(而不是提供摘要),您甚至可以使用blockquote元素,例如论坛帖子的示例 http://www.whatwg.org/specs/web-apps/current-work/multipage/grouping-content.html#the-blockquote-element显示用户正在回复的原始帖子。

2)如果您想知道是否允许包含articlea 内的元素li元素,只需将其提供给验证器即可。正如您所看到的,这样做是被允许的。此外,作为工作草案 http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#the-article-element says:

该元素可能存在的上下文 用过的:

Where 流动内容 http://www.whatwg.org/specs/web-apps/current-work/multipage/content-models.html#flow-content是期待。

3)我不会用nav这些类别的元素,因为这些链接不是页面主导航的一部分:

只有由主要导航块组成的部分才适合nav http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#the-nav-element元素。特别是,页脚通常具有指向网站各个页面的简短链接列表,例如服务条款、主页和版权页面。这footer http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#the-footer-element对于这种情况,单独的元素就足够了,无需nav元素。[source] http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#the-nav-element

4)不要使用details and/or summary元素,因为它们被用作互动元素 http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#the-details-element并且不适用于普通文档。

UPDATE:关于使用(无序列表)来呈现搜索结果是否是个好主意:

The ul元素代表一个列表 项目,其中项目的顺序是 不重要——也就是说,在哪里 改变顺序不会 实质上改变了 文档。[source] http://www.whatwg.org/specs/web-apps/current-work/multipage/grouping-content.html#the-ul-element

由于搜索结果列表实际上是一个列表,我认为这是使用的合适元素;然而,在我看来,该命令is重要(我希望最佳匹配结果位于列表顶部),我认为您应该使用有序列表(ol) 反而:

The ol元素代表一个列表 项目,项目所在的位置 故意命令,使得 改变顺序会改变 该文件的含义。[source] http://www.whatwg.org/specs/web-apps/current-work/multipage/grouping-content.html#the-ol-element

使用CSS你可以简单地隐藏数字。

EDIT:哎呀,我刚刚意识到你已经使用了ol(由于我的疲劳,我以为你用了ul)。我将保留我的“更新”不变;毕竟,它可能对某人有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 HTML5 语义标记搜索结果列表 的相关文章

  • 编辑类名中带有空格的元素的 css 样式

    我正在创建一个 tumblr 我必须编写一个外部 CSS 文件 但我在编辑 post 元素的 css 样式时遇到问题 这是它的结构 li class post quote other code li 问题是类名中有空格 我如何创建一个 CS
  • CSS3变换:悬停时翻译,带有过渡[重复]

    这个问题在这里已经有答案了 这应该很简单 我的 HTML 中有一堆锚点 如下所示 a href Link 1 a a href Link 2 a a href Link 3 a a href Link 4 a a href Link 5 a
  • 为什么网格项目不居中?

    由于某种原因 两个输入范围使网格中的前两项偏离中心 我假设这是因为它们的影子 DOM 样式 事实真的是这样吗 有谁知道为什么范围使项目 A 和 B 偏离中心 这是一个代码笔 https codepen io tOkyO1 pen QOeKL
  • 如何覆盖 bootstrap 表 td 样式?

    我正在使用 Bootstrap 3 3我有一个 HTML 代码如下 div table class table table striped tr td 03 td td 04 td td 05 td td 06 td td 07 td td
  • HTML5 支持命名空间吗?

    我们是否可以使用新标签来扩展 HTML5 例如
  • 宽度:适合内容;在 Chrome 上工作,但在资源管理器上不工作

    我构建了一个应用程序 所有内容都在 Chrome 中完美显示 但如果我在 Windows 资源管理器中打开该应用程序 容器会比应有的小 我在用着width fit content 这是只适用于 Chrome 的东西吗 我怎样才能使其适用于所
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • 我的 CSS 未在 Internet Explorer 11 和 Firefox 中加载!仅适用于 Chrome

    我正在创建一个简单的网页 我的 CSS 只能在 Chrome 中使用 它在 Firefox 和 IE11 中都不起作用 这是我的 HTML h1 b u Adding a new Visitor u b h1 br div class wr
  • php中的条件格式化html表与时间戳比较

    echo table style width 100 tr echo td Order td echo td Destination td echo td Location td echo td Status td echo td Time
  • 动态表单标签宽度的 CSS

    我目前正在重构我们的表单控制器之一 以便我们可以将其用于面向公众的网站 目前它正在为表单生成表格布局 但我正在尝试使用 CSS 表单来完成它 我正在尝试重现看起来像这样的东西http www stylephreak com uploads
  • 使用 jQuery 清除 IMG

    我正在尝试从 a 中删除加载的图像 img 元素 但清除或删除 src 不会执行此操作 该怎么办 HTML img src https www google com images srpr logo3w png JQUERY img att
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • 调整文本区域大小

    我需要使用文本区域来显示一些文本 问题是 如果我放置 4 5 行文本 就会出现滚动条 如何使用 CSS HTML 使文本区域与其内容一样大 没有滚动条 文本区域不需要动态更改其大小 我仅使用它来显示文本 我也可以使用禁用的文本区域 我希望文
  • HTML5 历史 API

    我如何使用 HTML5 历史 api 我确实经历过https developer mozilla org en DOM Manipulated the browser history https developer mozilla org
  • 如何将此 HTML 表格布局解决方案转换为浮动 div 解决方案?

    我经常需要列出各种尺寸的项目images在左边和text在右边 像这样 替代文本 http www deviantsart com upload 7s01l5 png http www deviantsart com upload 7s01
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • Jquery 中的动态滚动位置

    请帮助我解决以下情况 我有 3 个页面 当滚动到达第二页时 用户滚动页面 它必须找到特定的 ID 然后触发一个函数 一旦第三页开始 另一个函数就会触发 根据要求我不应该使用任何插件
  • 如何将送货地址复制到帐单地址

    我想知道是否可以将送货地址复制到帐单地址 当用户单击与送货地址相同的复选框时 送货地址值将被复制到账单输入字段 我完成了大部分部分 但我不确定如何将选择菜单 状态 值复制到帐单地址 我真的很感谢任何帮助 My code document r
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas

随机推荐