CSS样式中汉字和字母分别使用不同字体的方法

不同的操作系统、不同浏览器下内嵌的默认字体是不同的,错误的字体设置会导致页面在不同环境渲染的混乱,选择一套合适的字体是打造优秀网页的第一步。通过本文,我们会介绍字体的知识点,并探索在PC和Mobile两端该如何正确的设置字体。

一、字体基础知识

1、字体的分类

  • serif(衬线)
  • sans-serif(无衬线)
  • monospace(等宽)
  • fantasy(梦幻)
  • cuisive(草体)

这些不是指某一个字体,而是一个字体族,是一系列字体的集合,我们接触最多的就是衬线字体和无衬线字体。

2、serif(衬线字体) & sans-serif(无衬线字体)

Serif的意思是,在字的笔划开始及结束的地方有额外的装饰,而且笔画的粗细会有所不同。衬线字体的风格都比较突出,常见的衬线字体有Times New Roman宋体

Sans Serif字体没有这些额外的装饰,笔划粗细大致差不多,字形端庄,横平竖直,常见的无衬线字体有TahomaVerdanaArialHelvetica苹方微软雅黑等等。

3、英文和中文的字体是不同的

我们可以为英文、中文等两种字体调用不同的字体来渲染。如:Arial,'Times New Roman'这两种字体不认识中文,只认识英文,所以这两种字体只能渲染英文数字和一些特殊符号,而页面中的中文就会自动调用第三种字体Microsoft YaHei(PS:假如存在这种字体的话)。

所以在定义字体的时候把英文的字体写在前面把中文的写在后面。这样,系统就会自动按顺序依次给字用字体,如果当前字体不支持文本,自动换用列表中的下一个字体。

二、书写字体规则

在介绍字体规则前,有几点是需要注意的:

1、不同平台,预置的字体并不相同。比如Helvetica和苹方也只有苹果系统内置,微软雅黑只有windows系统内置(由于很多人安装Office的缘故,Mac电脑中也会出现微软雅黑字体),android 和 iOS 系统内置的字体各不相同。

2、字体是有版权的,但是如果没有引用外部字体文件(如 Web font 或者内嵌到 App 中),而仅仅是在 CSS 中指定字体名称,不需要购买授权,因为其只是一段声明,表示期望浏览器优先使用某种字体渲染文本。

3、中文网站涉及两种文字类型:西文字体和中文字体,西文字体包括英文数字等,不包括中文,但是中文字体一般包括英文和数字,我们一般先设置西文字体,后设置中文。

4、如果字体包含空格或者是中文,需要添加引号。

5、大部分字体全名中会包含字体粗细、斜体(italic)、长体(condensed)等具体属性,但一般不建议直接使用,字体的风格应该在 CSS 中通过 font-weight、font-style、font-stretch等属性指定,由浏览器决定实际渲染的字体。

6、font-family属于可继承属性,全局的font-family一般设置在body元素上。

我们可以总结字体定义的大概规则如下:

1、西文在前,中文在后

中文字体大多都包含西文,但西文的部分又不好看,而西文不包含中文,通常先定义西文,后定义中文以达到更优的显示效果。

2、优先使用system-ui

system-ui使用当前系统的默认字体,让web页面和操作系统的风格统一,体验更好。

3、兼顾不同的操作系统

选择字体的时候要考虑不同的操作系统,还需要考虑旧版本操作系统的用户。

即便是同一个字体在不同的操作下也会有细微的差别,我们要尽量做到相同系统使用同一种字体,保证同一个系统下的字体一致性。对于不同系统尽量保证字体风格接近,比如都使用无衬线字体。

为了保证苹果系统中使用更优雅的中文字体,优先声明苹方字体, 对于不支持苹方的低版本macOS,使用Hiragino Sans GB(冬青黑体)字体做兜底。

如果需要兼容Linux系统,还需要添加WenQuanYi Micro Hei(文泉驿微米黑)字体。

如果需要兼容不同平台的表情符号,一般在sans-serif后添加"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"等字体。

4、以serif或sans-serif字体族结尾

为了保证在各种不同环境或条件下显示正常,我们一般将sans-serif放在字体的后面,非衬线字体在显示器中的显示效果更好。

5、简洁实用

字体设置并不是越多越好,在能满足设计需求的情况下尽量简洁。相同系统下中西文字体各有一个fallback即可,不需要太多。

三、字体设置

通过字体的知识点和字体设置规范介绍,我们总结出全局默认字体的设置方式。

1、移动端

兼容版本:ios9+、android4+

推荐写法:

font-family: system-ui, -apple-system, Arial, sans-serif;

解读:优先使用system-ui,使用Arial做西文字体的fallback是因为它和Helvetica字体相似,并且在ios和android支持性很好。

2、PC端

推荐写法1: macOS系统优先使用系统字体

font-family: -apple-system, BlinkMacSystemFont, Tahoma, Arial, "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

推荐写法2: 指定字体

font-family: Tahoma, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

windows系统电脑屏幕分辨率普遍不高,Tahoma字体在小字号下结构清晰端整、阅读辨识容易,在不同操作系统支持性好,所以作为首选字体,如果系统没有预装Tahoma,则使用Arial作为替代。但两者差别不大,Arial优先级提前也行。

需要需要兼容Linux系统和表情符号,可以添加WenQuanYi Micro HeiEmoji字体,如:

font-family: -apple-system, BlinkMacSystemFont, Tahoma, Arial, "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";

如想突出macOS和windows的字体特色,可以在Tahoma前面设置HelveticaSegoe UI为首选字体,如:

font-family: "Helvetica Neue", "Segoe UI", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

注意:

1、字体的设置没有固定标准,需要根据业务情况进行定夺,以上只是推荐写法,如果设计师有要求可以在此基础上进行改动。

2、css的font-family权重是高于浏览器默认字体的,有一些网站选择不设置font-family,使用浏览器的默认字体,倾向于用户的选择,这就是仁者见仁了。

3、

目录

一、字体基础知识

1、字体的分类

2、serif(衬线字体) & sans-serif(无衬线字体)

3、英文和中文的字体是不同的

二、书写字体规则

三、字体设置

1、移动端

2、PC端

3、指定元素字体


指定元素字体

当给某个元素设置了font-faimily后,全局默认字体则对这个元素无效,这时也要考虑字体兼容问题,最好指定一个fallback字体,并以sans-serif结尾。

div {font-faimiy: "PingFang SC", sans-serif;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/595763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何写出一份优秀的简历?(求职必知)

你需要知道的事 简历是对自己职场的总结和概括,是通往下一段职业经历的敲门砖和 垫脚石。 因此,一份好的简历应该突出应聘者的优势,并引起企业方的好奇心。 知己知彼,百战百胜,求职者只有了解自己,以及了解…

大数据应用开发2-Scala语言各个环境配置

一、首先安装JDK1.8版本(简单过一下) 1.下载与安装 下载Java1.8 地址:Java Downloads | Oracle 中国 点击跳转(下载需要登录甲骨文账号) 下载完成运行 修改安装目录(两个都要改) 复制第一次修改的安装目录 2.配置环…

立仪科技光谱共焦位移传感器:应用领域的广泛性

在科技日新月异的今天,光谱共焦位移传感器以其精确、稳定的特性,在各个领域得到了广泛的应用。本文将详细介绍光谱共焦位移传感器的应用情况,以期让大家对其有更深入的了解。我们来理解一下什么是光谱共焦位移传感器。 它是一种通过测量物体表…

cmd命令启动C# windows服务程序

因为Process.Manage.Service.exe程序为Windows服务程序,不能直接双击打开,所以需要借助windows系统自带InstallUtil.exe程序来启动它。 以管理员身份运行cmd命令控制台窗口 输入命令进入到InstallUtil.exe程序所在的文件夹 cd C:\Windows\Microsoft.NET…

【EI会议征稿通知】第三届电子与集成电路技术国际学术会议(EICT 2024)

第三届电子与集成电路技术国际学术会议(EICT 2024) 2024 3rd International Conference on Electronics and Integrated Circuit Technology 第三届电子与集成电路技术国际学术会议(EICT 2024)将于2024年4月12至14日在南昌市举行…

Mongodb的可重试读操作

目录 重试读操作 需要条件 启用重读 支持可重试读的操作 不支持可重试读的操作 行为 重试读操作 连接mongodb进行读操作时,遇到网络或数据库集群的主节点切换导致的数据读问题。mongodb驱动自动尝试重新执行读操作。 需要条件 数据库连接驱动支持mongodb4.2…

【电路笔记】-超级电容器

超级电容器 文章目录 超级电容器1、概述2、对电容器充电3、超级电容构造4、超级电容器示例15、超级电容器能量6、总结 超级电容器是能够存储大量电荷的电能存储设备。 1、概述 与以热的形式耗散能量的电阻器不同,理想的超级电容器不会损失能量。 我们还看到&#x…

【ITK库学习】使用itk库进行图像配准:变换Transform(三)

目录 1、itkAffineTransform 仿射变换2、itkBSplineDeformableTransform B样条可变形变换 1、itkAffineTransform 仿射变换 该类实现向量空间的仿射变换(例如空间坐标) 此类允许定义和操作n维仿射空间(及其关联的向量空间)对其自…

Caching SHA2 password 与 MySQL native password 的区别

前言 Caching SHA2 password 和 MySQL native password 是MySQL数据库管理系统中用于认证的两种不同的插件。这两种插件的主要区别在于它们使用的哈希算法和安全性 区别 MySQL native password:这是MySQL早期版本的默认认证插件,它使用SHA1哈希函数&a…

班主任是班级工作的什么人

在我们的学习生涯中,班主任是一个不可或缺的角色。他不仅是我们学术上的指导者,更是我们成长路上的引路人。 是班级的掌舵者。一个班级就像一艘船,航行在知识的海洋中。班主任就是这艘船的船长,他们带领着我们向着目标前进&#x…

【办公软件】修改U盘的默认盘符

在工作中我们可能会因为有一些大型软件设置了库文件路径(如Z盘)。在家办公时通过U盘的方式将库拷入在U盘中,但是到家里的电脑上,U盘插入后会默认一个盘符(如E盘),那么应该怎么操作呢&#xff1f…

国产化软硬件升级之路:πDataCS 赋能工业软件创新与实践

在国产化浪潮的推动下,基础设施软硬件替换和升级的需求日益增长。全栈国产化软硬件升级替换已成为许多领域中的必选项,也引起了数据库和存储领域的广泛关注。近年来,虽然涌现了许多成功的替换案例,但仍然面临着一些问题。 数据库…

前端食堂技术周刊第 110 期:Vue3.4、新版 Vue DevTools 开源、AI 2023 年度总结合集、Web Components 的另一个未来

美味值:🌟🌟🌟🌟🌟 口味:草原羔羊蝎 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看…

C#属性介绍

文章目录 一、简要介绍二、详细介绍2.1 例子2.2 属性和字段的比较2.3 自动实现属性2.4 静态属性2.5 只读/只写属性2.6 属性可访问性2.7 接口声明属性2.8 使用初始化器初始化属性 一、简要介绍 属性是代表类的实例或者类中的一个数据项的成员。 属性是字段和方法的交集&#xf…

【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行模式

【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 概述-CSDN博客 【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行环境搭建-CSDN博客 【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行模式-CSDN博客 目录 1、Hadoop运行模式 2、 编写集群分发脚本 xsync 2.1、scp (se…

判断线性相关性

线性相关是线性代数中的一个重要概念,用于描述向量或向量组之间的线性关系。以下是判断向量组是否线性相关的几种方法: 1. **根据定义判断**: - 如果存在一组不全为零的系数,使得这些系数与对应的向量组相乘后相加等于零向量&a…

如何为项目创建高效的项目进度表?

项目管理是一项负有巨大责任的工作,涉及到完成项目所需的大量流程和任务。如果没有任务和责任的线路图,很容易就偏离方向,无法了解项目每个阶段需要完成的任务。这就是为什么项目进度表是成功执行项目的核心所在。 什么是项目进度表&#xff…

MSVCR100.dll丢失,程序无法启动,快速修复,亲测有效

很多用户,在日常使用电脑的过程中都遇到过,电脑报错“程序由于缺失MSVCR100.dll文件,无法启动,需要重新安装解决”,不少用户卸载软件重装后,还是报错,那么应该怎么解决呢? 首先&…

FastApi-快速入门1

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.8 并基于标准的 Python 类型提示。 关键特性: 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快…

「实验记录」CS144 Lab1 StreamReassembler

目录 一、Motivation二、SolutionsS1 - StreamReassembler的对外接口S2 - push_substring序列写入ByteStream 三、Result四、My Code五、Reference 一、Motivation 我们都知道 TCP 是基于字节流的传输方式,即 Receiver 收到的数据应该和 Sender 发送的数据是一样的…