web开发之字体应用
程序员文章站
2022-06-20 14:26:33
...
font-family,这是一个很容易被忽视的环节,却直接影响了网站的体验。
本文不谈技术细节,只说设计准则。
1.使用英文名
尽量不要使用下面的声明方式:
font-family: "华文细黑", "微软雅黑";
直接用中文名有可能会出现支持性问题,在编辑器之间切换还有可能乱码。中文字体其实也是有英文名的,华文细黑叫STXihei,微软雅黑叫"Microsoft YaHei",宋体叫Simsun,下面这段声明与上面那段效果是相同的:
font-family: STXihei, "Micorosoft YaHei";
下面是一份中英文字体对应表:
2.正确声明字体顺序
先英文,再中文(如果可以尽量用英文名代替),最后加上字体族。font-family: STXihei, "Micorosoft YaHei", sans-serif;
为什么英文要在前面,因为很多中文字体的英文显示都很丑。如果你不能确定用户的电脑上一定会有你声明的字体的话,那最好在后面加上字体族,以便于系统寻找替代方案。
另外Mac中的字体声明要放在Window前面。因为Window下面是没有Mac的华文细黑的,而Mac用户有可能安装了微软的Office。所以把Mac放前面不会对windows用户产生影响。
3.正确选择字体族
我们在CSS中会经常使用sans-serif,但你确定用它合适吗?
CSS中的字体可分为两大类:sans-serif(非衬线字体族,sans是法语前缀,代表无的意思。)和serif(衬线字体族)。二者的主要区别是一个没有修饰,一个有修饰。
可以看到sans-serif笔画都比较平整,粗细均匀,而serif在笔画的开始和末尾都会有一点修饰。因此,serif的字体容易辨认一些,阅读的整体感要比sans-serif强。而sans-serif则强调文字个体,通常用来做标题会更加醒目一些。
一般来说,文章的正文用serif可增加易读性。海报,网页标题等部分用sans-serif更佳。有时为了美感小段部分也会用sans-serif,但是涉及到大篇幅的时候,还是要用serif的。
除了上面两种字体外,还有以下几种:
Monospace:等宽字体族。适合显示代码,代表字体有Courier、MS Courier New、Prestige等;
cursive:手写字体族。在书信风格的网页下用的比较多,代表字体有Caflisch Script、Adobe Poetica等;
fantasy:梦幻字体族。听名字就是很有艺术范的字体,代表字体有WingDings、WingDings 2、WingDings 3、Symbol等。
实际设计网页时,要根据需求的不同合适选择字体族,而不是直接复制粘贴。
4.注重兼容性
Windows,Mac OS,Linux,不同的系统预装字体是不同的,要考虑到各个系统的显示效果,尽量做到一致性体验。
而且,同一类操作系统的不同版本字体库也可能有差别。比如XP下面是没有预装微软雅黑的,所以我们还要向下兼容:
font-family:Arial, STXihei, "Microsoft YaHei", SimSun, sans-serif;
不过在XP下面,如果不指定网页的中文字体,默认就是用宋体,所以上面的SimSun在XP下其实是多余的。
以上只是考虑PC环境下的兼容,还有移动端的兼容性。苹果专门放了一个iOS 7字体支持列表,网上找了一份主流手机默认字体表:
iOS 系统
默认中文字体是Heiti SC默认英文字体是Helvetica
默认数字字体是HelveticaNeue
android 系统
默认中文字体是Droidsansfallback默认英文和数字字体是Droid Sans
winphone 系统
默认中文字体是Dengxian(方正等线体)默认英文和数字字体是Segoe
(没有微软雅黑!)
5.使用自定义字体
如果真要做的一致性体验的 话,那么使用自定义字体倒是最好的选择。有了font-face,就不必要局限在安全字体里了。但是仍然需要考虑到浏览器的兼容性。
主流浏览器都支持.ttf/.otf后缀字体,IE9+只支持.eot的字体(IE8以下不支持font-face)。
另外如果是在移动设备上,个人认为是否使用自定义字体就要慎重考虑了,一是流量问题,二是移动端各个系统的默认中文字体差异并不明显。
使用自定义字体,平时上网多留意一些好看的字体,收藏之,以备不时之需。