我想创建仅包含图标的特殊字体。并且对于每个字母将是不同的图标。 我想在css中嵌入这个字体。 并使用这样的 如果我需要一些图标:
<a class="icon">f</a>
和css
<link href='http://fonts.mysite.com/css?family=MyFontWithIcons' rel='stylesheet' type='text/css'>
包含:
@media screen {
@font-face {
font-family: 'MyFontWithIcons';
font-style: normal;
font-weight: normal;
src: local('MyFontWithIcons'), url('http://fonts.mysite.com/font?MyFontWithIcons') format('truetype');
}
}
并显示带有图标类的图标:
.icon {font-family: 'MyFontWithIcons'; }
字母“f”将替换为位于f字母位置的字体内的图标。 和css一起使用字体并用字体内的图标替换f。 我认为这是好主意吗?字体文件的大小比许多图像图标小。 而且这种技术我可以使用不同的字体颜色=不同的图标颜色?尺寸等。 那么,这是好主意还是没有?
答案 0 :(得分:6)
对图标使用自定义字体的问题是,如果出现以下情况,则没有备份计划:
@font-face
@font-face
(例如,针对Unix / Linux的文本网络浏览器,如Lynx,Links2和ELinks)图像提供alt
属性就是出于这个原因。
但是,如果您要使用字体作为图标,请确保将字形存储在Unicode Private Use Area中。通过确保可能没有冲突(公司可以并且有时使用PUA字形来存储自定义数据)来缓解这个问题,并且如果它们被巧妙地编码,屏幕阅读器可以知道优雅地忽略PUA字形。
至于实施后备,我建议使用Modernizr(具体来说,Modernizr.fontface)来测试支持。
答案 1 :(得分:0)
这是一个好主意,但它并不适用于所有浏览器(尚未)。此外,它只适用于2色图像(黑色和透明),这使它相当有限。对于使用文本浏览器或文本到语音软件的人来说,它没有任何意义。它不是真正的“语义”,因为<img>
- 标签用于图像。从仅使用html的角度来看,使用字体是没有任何意义的。它也使你的CSS混乱。
所以这只是为了少一点带宽而带来很多坏事;我不打扰。
答案 2 :(得分:0)
@font-face
。这是一个迎合所有浏览器的任务。如果包括IE6 答案 3 :(得分:0)
所有其他答案都集中在缺点上。 我个人非常喜欢使用图标字体。 以下是使用图标字体的一些很好的理由:
dark-theme
,所有图标都是白色的,如果身体有类tropical-theme
,则所有图标都是粉红色的)