HTML5 i 带图标的标签有效性

标签 html seo icons glyphicons

我一直在使用 Bootstrap 来构建我的网站,但是在这样做和研究 SEO 的过程中,我发现使用带有字形的 i 标签在技术上不是“有效的”HTML。是否有明确的规则表明可以以这种方式使用 i 标签而不影响标记有效性而不影响 SEO?

作为这个问题的一部分,我还试图满足关于我的 anchor 文本没有描述其目的地的投诉:

<a href="@Url.Action("Accountant", "Service")">
     <div class="service-icon">
           <div class="icon-book-1 icon-medium-effect icon-effect-2"></div>
     </div>
</a>

这会产生所需的视觉效果,但我无法添加 anchor 文本,否则它显然会显示在屏幕上。通常情况下, anchor 内会使用图像,并且我可以显示 alt 文本,所以我不知道将这个“描述性文本”放在哪里最好。

最佳答案

不要使用i

i element具有不适合一般图标的含义:

[…] a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.

有些人使用 (d) i 作为显示图标(通过 CSS)的钩子(Hook)的原因可能是:

  • 术语“图标”以 i 开头。
  • 元素名称很短。

改用 span,这是一个无意义元素。


如果图标是相关内容(对于理解/使用您的页面很重要),请考虑改用 img 元素,它允许您使用 alt 属性。

您应该仅将 CSS 用于装饰性图标。如果那不可能:

如果你链接这个图标并且链接不包含任何内容(没有文本,没有img,...),即它只包含一个元素,那么您应该在 HTML 中提供一些内容。否则,不支持 CSS 的访问者、屏幕阅读器用户等将无法使用您的链接。如果您出于设计原因不想包含内容,请将其隐藏起来。 More details in my related answer .

关于HTML5 i 带图标的标签有效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466223/

相关文章:

html - 在链接替代标签中使用 hreflang 来建议特定于区域的替代方案,以避免它们被确定为重复项是否正确?

javascript - 在 Angular js中抓取ng-view

ionic2 - 如何在 ionic 2 应用程序的侧面导航面板菜单中设置图标

jquery - Css 箭头进度条

html - 我怎样才能解决这个问题?一个元素上的两个动画?

image - Next.js:使用图像组件时的空 alt 标签

c# - 应用程序的 Xamarin UWP 图标 Assets

html - Bootstrap css - div 高度和溢出

HTML 预处理器?

c# - 如何以编程方式操作 Windows 桌面图标位置?