【发布时间】:2012-11-12 00:47:55
【问题描述】:
可能重复:
<I> tag for icons?
我在FontAwesome 中看到,为了使用他们的图标字体,他们使用了一个空的<i>,如下所示:
<a class="btn" href="#">
<i class="icon-refresh"></i> Refresh
</a>
而不是像这样用<span> 包装它:
<a class="btn" href="#">
<span class="icon-refresh">Refresh</span>
</a>
我看到其他一些网站也采用了类似的技术。 AFAIK,这两种技术都使用 CSS 伪元素 :before,所以我想知道他们为什么使用 <i> 而不是用 <span> 包装它?
使用空的<i> 有什么好处吗?它是语义的吗?
【问题讨论】:
-
这个伪元素现在被称为
::before -
@RobW:嗯,对于那些将
<i>与<span>进行比较的问题,我找不到答案,所以我认为可以提出一个新问题? -
"它是语义化的吗?"哎呀,不。任何想用
<i>做图标的人都应该被串起来。这甚至比使用<i>的斜体更糟糕,它最初是为它创建的,即使它不是语义的。我敢说零语义(<span>代表)击败了不正确的语义——甚至<i>在 HTML5 中被赋予了全新的、正确的语义含义,而“图标”不是它。 -
@ŠimeVidas: 可以使用
::before了吗?因为 AFAIK 某些浏览器(IE,如果我没记错的话)不会呈现::before。
标签: html css fonts icons font-face