开发者社区> 动感小前端> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

web开发之字体应用

简介:
+关注继续查看

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)。

另外如果是在移动设备上,个人认为是否使用自定义字体就要慎重考虑了,一是流量问题,二是移动端各个系统的默认中文字体差异并不明显。

使用自定义字体,平时上网多留意一些好看的字体,收藏之,以备不时之需。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《Serverless 开发实战--十分钟上线一个 Web 应用》电子版地址
Serverless 开发实战--十分钟上线一个 Web 应用
0 0
函数计算搭建 Serverless Web 应用
函数计算搭建 Serverless Web 应用自制脑图
0 0
Serverless应用场景——机器学习( AI 推理预测)、Web 应用/移动应用后端、音视频转码
Serverless应用场景——机器学习( AI 推理预测)、Web 应用/移动应用后端、音视频转码自制脑图
0 0
全国大学生软件测试大赛Web应用大赛训练题功能测试脚本
全国大学生软件测试大赛Web应用大赛训练题功能测试脚本
0 0
全国大学生软件测试大赛Web应用大赛常用测试语句
全国大学生软件测试大赛Web应用大赛常用测试语句
0 0
阿里云 Web 应用防火墙
阿里云 Web 应用防火墙自制脑图, 全面保障网站的安全与可用性,互联网大数据时代,信息变得唾手可得。庞大的中国互联网正遭受层出不穷的安全威胁,黑客们的肆意攻击让网络安全攻防战必须时刻戒备。如何在这场看不见硝烟的战争中克敌制胜。现在阿里云云盾构筑了强大的 web 应用防火墙,汇集阿里巴巴 10 年攻防经验,云盾 WAF 在 web 应用防护,CC 攻击防护,业务风控 3 个维度,为您提供一套简单快速有效的安全防护解决方案,全面保障您的云业务系统安全,打造网络安全星纪元。
0 0
linux使用nginx实现本地web服务和docker应用,共用80端口。
linux使用nginx实现本地web服务和docker应用,共用80端口。
0 0
Web缓存服务——Squid代理服务器应用(下)
正向代理:代替客户端向服务端发送请求。 反向代理:代理服务端,将请求转发给多个服务端。
0 0
Web缓存服务——Squid代理服务器应用(中)
正向代理:代替客户端向服务端发送请求。 反向代理:代理服务端,将请求转发给多个服务端。
0 0
+关注
动感小前端
前端工程师
文章
问答
文章排行榜
最热
最新
相关电子书
更多
边缘安全,让Web加速有保障
立即下载
Web应用系统性能优化
立即下载
Serverless 开发实战--十分钟上线一个 Web 应用
立即下载