CSS 系统字体堆栈参考

简介: CSS 系统字体堆栈参考

网站上的字体很容易成为浏览器在显示页面最终外观和形式之前必须下载的总捆绑大小的一部分。此外,我们还需要担心各种问题,比如臭名昭著的未样式文本闪烁(FOUT)。可以说,整个问题的一部分已经得到解决,多亏了font-display属性。


另外,网站上的文本几乎总是最重要的部分,因此我们不希望出现外观不佳或难以阅读的文本。那么,一个精明的网页设计师应该怎么做才能既满足性能又满足外观和感觉呢?


一个解决方案是实际上使用用户设备上已安装的字体。过去,这不是一个非常优雅的解决方案,因为一些流行的系统没有内置美丽的字体。然而,现在情况不同了,每个主要操作系统都内置了一个看起来和阅读起来都很好的无衬线系统字体。


因此,诀窍就是将所有这些默认系统字体名称作为font-family属性的值提供给应该使用系统字体的元素。然后浏览器将使用它在当前系统上找到的第一个字体。请记住,这也意味着文本将根据它所在的系统而有所不同。然而,这并不一定是件坏事,因为文本将感觉与其所在的操作系统相符。

无衬线系统字体堆栈

话不多说,这就是在这个网站上使用的系统字体堆栈的版本:

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
               Roboto, Oxygen-Sans, Ubuntu, Cantarell,
               "Helvetica Neue", sans-serif;
}

这个堆栈与WordPress使用的堆栈相同,并且到目前为止在Alligator.io的内容上运行得相当不错。在这个网站上,标题使用可变字体Recursive,以增加一些风格,但内容本身使用系统字体。

如果你感兴趣,这里是这些字体/关键字的详细说明:

  • -apple-system和BlinkMacSystemFont:用于引用苹果设备上的系统字体的关键字,通常是San Francisco或Helvetica Neue,具体取决于操作系统的版本。在一些更新的浏览器中,现在可以使用关键字system-ui来执行这两个关键字的工作。
  • Segoe UI:用于Windows系统。
  • Roboto:Android设备的系统字体。
  • Oxygen-Sans:使用KDE的Linux系统。
  • Ubuntu:Ubuntu Linux
  • Cantarell:使用Gnome的Linux系统(不包括Ubuntu)。
  • Helvetica Neue:许多系统(尤其是苹果系统)上都有的常见备用字体,以防前面的字体都失败了。
  • sans-serif:如果一切都失败了,回退到默认的浏览器无衬线字体。通常不是最令人愉悦的结果,这就是为什么我们不只使用font-family: sans-serif

和生活中的大多数事情一样,系统字体堆栈有许多不同的风格,每个都略有不同。例如,这是GitHub使用的堆栈。

等宽系统字体堆栈

虽然没有基于衬线字体的系统字体堆栈,但有一个等宽字体的堆栈,对于代码片段等非常有用。这是Bootstrap v4使用的堆栈(GitHub也使用了一个非常相似的版本):

code {
  font-family: SFMono-Regular, Menlo, Monaco,
               Consolas, "Liberation Mono", 
               "Courier New", monospace;
}

使用@font-face的系统字体

如果你厌倦了在CSS的多个地方重复相同的多个字体名称的字符串,可以在这篇CSS-Tricks文章中找到一个技巧,允许利用@font-face规则来定义一个单一名称,该名称引用整个堆栈。


目录
相关文章
|
8月前
|
前端开发
css 设置背景色渐变、字体颜色渐变
css 设置背景色渐变、字体颜色渐变
|
7月前
|
编解码 前端开发 UED
探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用
本文深入探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用。通过实际案例分析和注意事项的讨论,旨在帮助开发者更好地理解和运用媒体查询,提升移动端用户体验。
165 4
|
7月前
|
前端开发
Foundation CSS 参考手册3
此段内容介绍了几个常用的CSS类及其功能:.left 和 .right 分别使元素向左或向右浮动;.clearfix 用于清除浮动,需添加于浮动元素的父元素上;.hide 通过设置 CSS display 属性为 none 来隐藏元素;.list-inline 可将列表项水平排列;.lead 使文本更加突出;.subheader 用于设置浅色的标题元素。
|
7月前
|
前端开发
Foundation CSS 参考手册2
本文介绍了如何使用CSS类实现文本对齐,包括基本的左、右、居中和两端对齐,以及针对不同屏幕尺寸的特定对齐方式,如小屏、中屏、大屏等,每个类别都有相应的示例供测试。
|
7月前
|
前端开发
Foundation CSS 参考手册1
Foundation CSS参考手册:Foundation框架默认使用浏览器字体大小(通常16px),移动设备为12px,字体为"Helvetica Neue",行高1.5。段落底部外边距1.25rem,行高1.6。对h1至h6标题、链接、副标题、引用、加粗、斜体、缩写、键盘输入、水平线、代码片段及列表等HTML元素设置了独立样式,优化了网页显示效果。
|
9月前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
159 28
|
8月前
|
存储 前端开发 安全
详解CSS之Web 字体
详解CSS之Web 字体
103 4
|
10月前
|
前端开发 开发者 容器
【Web布局的革命】探索CSS Grid栅格系统,打造未来网页设计!
【8月更文挑战第25天】在网页设计领域,布局至关重要。传统的布局方法难以满足复杂需求,CSS Grid 栅格系统因此诞生。它是一种二维布局模式,能直接控制行和列,简化复杂网格的设计。通过定义 `display: grid;` 创建网格容器,并利用 `grid-template-columns` 和 `grid-template-rows` 设置行列尺寸,轻松实现响应式布局。此外,CSS Grid 支持高级功能,如网格区域划分和对齐设置,极大提升了布局的灵活性和创意空间。随着浏览器兼容性的增强,CSS Grid 必将成为未来网页设计的关键技术之一。
158 1
|
10月前
|
前端开发
HTML+CSS 速成10分钟!一键实现你的后台管理系统首页梦想!
HTML+CSS 速成10分钟!一键实现你的后台管理系统首页梦想!
|
11月前
|
前端开发 JavaScript
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法