css 颜色与字体

发布于:2025-06-27 ⋅ 阅读:(18) ⋅ 点赞:(0)

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字体加载失败后,那么文本就一直不可见。


网站公告

今日签到

点亮在社区的每一天
去签到