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

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

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


相关文章
|
2月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
267 4
|
7月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
6月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
6月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
6月前
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
264 104
|
6月前
|
JavaScript 前端开发 API
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
本文介绍了HarmonyOS应用开发中的HML、CSS和JS语法。HML作为标记语言,支持数据绑定、事件处理、列表渲染等功能;CSS用于样式定义,涵盖尺寸单位、样式导入、选择器及伪类等特性;JS实现业务逻辑,包括ES6语法支持、对象属性、数据方法及事件处理。通过具体代码示例,详细解析了页面构建与交互的实现方式,为开发者提供全面的技术指导。
285 104
|
6月前
|
开发框架 编解码 JavaScript
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)
该文档详细介绍了一个兼容JS的类Web开发范式的方舟开发框架,涵盖概述、文件组织、js标签配置及app.js等内容。框架采用HML、CSS、JavaScript三段式开发方式,支持单向数据绑定,适合中小型应用开发。文件组织部分说明了目录结构、访问规则和媒体文件格式;js标签配置包括实例名称、页面路由和窗口样式信息;app.js则描述了应用生命周期与对象管理。整体内容旨在帮助开发者快速构建基于方舟框架的应用程序。
286 102
|
6月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。该方案设计目标是实现通用性,适用于各种网络架构和业务场景。
198 1
|
7月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
283 7