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

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

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


相关文章
|
4月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
10月前
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
|
3月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。该方案设计目标是实现通用性,适用于各种网络架构和业务场景。
91 1
|
4月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
120 7
|
4月前
|
Web App开发 前端开发 JavaScript
鸿蒙5开发宝藏案例分享---Web适配一多开发实践
这是一份实用的鸿蒙Web多设备适配开发指南,针对开发者在不同屏幕尺寸下的布局难题提供了解决方案。文章通过三大法宝(相对单位、媒体查询和窗口监听)详细介绍如何实现智能适配,并提供了多个实战案例,如宫格布局、对话框变形和自适应轮播图等。此外,还分享了调试技巧及工具推荐,帮助开发者快速上手并优化性能。最后鼓励读者实践探索,并提示更多官方资源等待发现。
|
6月前
|
关系型数据库 MySQL 数据库
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
TIS 是一款基于Web-UI的开源大数据集成工具,通过与人大金仓Kingbase的深度整合,提供高效、灵活的实时数据集成方案。它支持增量数据监听和实时写入,兼容MySQL、PostgreSQL和Oracle模式,无需编写复杂脚本,操作简单直观,特别适合非专业开发人员使用。TIS率先实现了Kingbase CDC连接器的整合,成为业界首个开箱即用的Kingbase CDC数据同步解决方案,助力企业数字化转型。
1143 5
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
|
7月前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
195 19
|
6月前
|
机器学习/深度学习 开发框架 API
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。
|
8月前
|
Web App开发 编解码 vr&ar
使用Web浏览器访问UE应用的最佳实践
在3D/XR应用开发中,尤其是基于UE(虚幻引擎)开发的高精度场景,传统终端因硬件局限难以流畅运行高帧率、复杂效果的三维应用。实时云渲染技术,将渲染任务转移至云端服务器,降低终端硬件要求,确保用户获得流畅体验。具备弹性扩展、优化传输协议、跨平台支持和安全性等优势,适用于多种终端和场景,特别集成像素流送技术,帮助UE开发者实现低代码上云操作,简化部署流程,保留UE引擎的强大开发能力,确保画面精美且终端轻量化。
356 17
使用Web浏览器访问UE应用的最佳实践
|
10月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
380 67