我最近阅读了很多有关字体图标的内容,并且我看到的几乎每个站点都将:before
和:after
伪元素与content
属性结合使用,以将字体图标插入DOM。
但是,我看不出将这些伪元素用于字体图标的优势。实际上,我觉得使用它们有两个很大的缺点::before
并且:after
在IE7和更低版本中不受支持,并且很难使用它们来定位内容。
因此,我的问题是:为什么要使用:before
和:after
根本不将字体图标插入DOM?我当时在想,这可能与屏幕阅读器有关,但是如今,所有字体图标服务(如IcoMoon)似乎都将字体图标分配给Unicode PUA(专用区域)中的代码点, ),屏幕阅读器也不会大声朗读。
在我看来,使用HTML实体(如)简单地将字体图标添加到标记中似乎更容易且更符合跨浏览器
。
要改写这个问题:是什么,为什么大多数人使用的具体原因:before
,并:after
为字体图标?非常感谢你。
这是一个相当大的理论差异。
想法是,生成的内容不被视为文档的一部分,并且没有语义价值。处理页面内容的代理(例如搜索引擎和音频页面阅读器)应该忽略它(真正的屏幕阅读器实际上不一定总是那么干净,但这是另一回事)。
这非常适合您想要添加没有语义内容的视觉装饰的时间,这是图标字体的正确用法。这与使用背景图像突出显示项目或使用图像没有什么不同alt=""
。
如果您只是
在页面中编写,那么理论上它确实具有语义内容……只是没有任何定义明确的语义内容,它是“奇怪的未知字符”。尽管它不代表任何含义,但它可能对特定社区有用(U + E000可能被视为符文或Tux图片),因此某些工具可能不恰当地对待它。
(所有这些下降的地方是,人们确实使用图标字体而不是装饰,以表示文档内容没有赋予的有意义的区分。而且由于FontAwesome自己的示例页面包含这种难以接近的滥用方式,人们这样做并不奇怪。 Web设计师是视觉动物,您可以使他们使用适合语义的工具,但不能使他们从语义上进行思考。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句