当前位置: 首页 > news >正文

css 颜色与字体

css 中颜色表示方式有:十六进制(#000)、rgb(rgb(0,0,0))及hls(hls(198,73%,53%))函数等。HSL是一种更适合人类读取的颜色表示法。

网页设计,成也字体,败也字体。Web字体使用@font-face规则,告诉浏览器去哪里找到并下载自定义字体,供页面使用。

1 颜色表示法

rgb() 函数有三个值,分别描述红(red)、绿(green)、蓝(blue)彩色值,每个值使用十进制而非十六进制,范围为0-255(取代了00-FF)。例如rgb(20,130,220),从这个值可以看出,这个颜色红色值非常少,绿色值中等,蓝色值非常多。这个颜色整体偏蓝。

图 rgb(20,130,220) 表示的颜色

十六进制表示法,通常由“#”及6位数字(或字母)构成。分别代表红、绿、蓝三个颜色通道,每个通道占2位,取值范围是(00-FF)。

短格式的十六进制表示法,由“#”及3位数字(或字母)构成。规则是为将每一位重复一次。例如:

#000 -> #000000;

#abc -> #aabbcc;

1.1 HSL 表示法

HSL代表色相(Hue)、饱和度(Saturation)和亮度(Lightness)。

色相是色彩的基本属性,值颜色在色轮上的位置,用0-360度的数值表示。

图 色相环

红(0)、橙(30)、黄(60)、绿(120)、青(180)、蓝(240)、紫(270)。

基色、15°同类色、30°类似色、60°临近色、90°中差色、120°对比色、180°互补色。

饱和度:描述颜色的鲜艳程度或纯度,以百分比的形式表示。饱和度为100%时,颜色是最鲜艳的,为0%时,颜色变成灰色。(减少灰色的比例)

图 不同饱和度颜色对比

亮度:表示颜色的明亮程度,亮度为0%时,颜色为黑色;为100%时,颜色为白色。(加入白色的比例)

图 不同亮度颜色对比

2 字体

在CSS中使用Web字体(非系统默认字体)可以通过@font-face自定义引入。

@font-face {font-family: "MyFont"; /* 自定义字体名称 */src: url("path/to/font.woff2") format("woff2"), /* 优先加载 woff2(更小更高效) */url("path/to/font.woff") format("woff");    /* 兼容旧浏览器 */font-weight: 400;       /* 字重(如 400=normal, 700=bold) */font-style: normal;     /* 样式(normal/italic) */font-display: swap;     /* 优化加载行为 */
}
body {font-family: "MyFont", sans-serif; /* 使用自定义字体 */}
}

CSS 定义了5种通用字体族,通常将它们放在字体列表的最后作为回退,确保即使前面的字体都失败,也能显示一个可读的字体(从系统种挑选设定的字体族中的默认的一个字体)。

字体类别

特点

适用场景

Serif(衬线体)

传统、正式

印刷品、长文阅读(博客、新闻)

Sans-serif(无衬线体)

现代、简约

网页正文、UI界面

Monospace(等宽字体)

字母等宽

代码、终端显示

Cursive(手写体)

模仿手写

装饰性标题

Fantasy(装饰体)

艺术风格

特殊设计

表 CSS的5中通用字体族

图 腾讯网(qq.com)首页中设置的字体

腾讯网设置的字体表示当sans-serif前面的字体都加载失败时,会选用用户当前系统中sans-serif字体族中的一个默认字体。

system-ui 表示操作系统默认UI字体。

2.1 FOUT和FOIT

FOUT: Flash of Unstyled Text,无样式文本闪动。渲染网页时,为了尽快渲染页面,浏览器使用了可用的系统字体。然后,当Web字体加载完成后,页面会使用Web字体重新渲染一次。相比系统字体,Web字体很可能会在屏幕上占用不一样的空间。这样导致在第二次渲染时,页面布局变了,文字突然跳动。

FOIT:Flash of Invisible Text。不可见文本闪动。有些浏览器没有采用上面的方式渲染文本,而是先渲染页面上除了文本以外的其他元素,把文本渲染成不可见,当Web字体加载完成后,再渲染文本。

这种方式还有个问题,当Web字体加载失败后,那么文本就一直不可见。

相关文章:

  • Flux.create
  • Mac电脑如何搭建基于java后端的开发的各种工具服务
  • WebSocket 与 HTTP 的区别及 Spring Boot 实战应用
  • FANUC机器人教程:用户坐标系标定及其使用方法
  • Java——注解开发模式下的 Spring IoC/DI 与 Bean 管理实战
  • 机器学习15-规则学习-知识加强
  • 【NLP】自然语言项目设计
  • vllm加载多个Lora部署
  • 数据分享:教育数据集-预测学生辍学风险和学术成功数据集
  • 01【C++ 入门基础】命名空间/域
  • 8、做中学 | 四年级下期 Golang运算符
  • [论文阅读] 人工智能 + 软件工程 | AI 与敏捷开发的破局之路:从挫败到成功的工作坊纪实
  • Git 使用规范与命令使用场景详解
  • 【嵌入式ARM汇编基础】-ELF文件格式内部结构详解(二)
  • C语言再出发:2025年AI时代的关键语言
  • JavaWeb学习——day9(图书管理系统初级)
  • Day 2 学习主题「面向对象 + Pythonic 风格」
  • Linux服务器部署Leantime与cpolar构建低成本团队协作环境
  • 数据分享:汽车行业-汽车属性数据集
  • 英特尔汽车业务败走中国,喊出“All in”才过两个月