当前位置: 首页 > 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字体加载失败后,那么文本就一直不可见。

http://www.lqws.cn/news/526699.html

相关文章:

  • Adam优化器
  • Nuitka 打包Python程序
  • NoSQL之Redis集群
  • 智慧生产管控数字化平台(源码+文档+讲解+演示)
  • Datax报错:在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数
  • Flutter 多平台项目开发指南
  • 使用Charles中文版抓包工具进行高效的API调试与性能优化
  • openharmony 性能检测工具
  • [架构之美]Spring Boot 3.5.3新特性解析及JDK21集成
  • Socket 编程 TCP
  • 小程序入门:理解小程序页面配置
  • ZYNQ GP总线深度实战:智能灯光控制器的PS-PL交互艺术
  • 128K 长文本处理实战:腾讯混元 + 云函数 SCF 构建 PDF 摘要生成器
  • 如何解决本地DNS解析失败问题?以连接AWS ElastiCache Redis为例
  • 华曦达港股IPO递表,AI Home生态构建智能生活新蓝图
  • dockercompose快速安装ELK
  • 设计模式 | 原型模式
  • 分布式I/O在风电行业的应用
  • 向量数据库milvus中文全文检索取不到数据的处理办法
  • Python 惰性求值实战:用生成器重构 Sentence 类
  • Milvus中 Collections 级多租户 和 分区级多租户 的区别
  • kubernetes架构原理
  • 【Docker基础】Docker容器管理:docker rm及其参数详解
  • Axure版TDesign 组件库-免费版
  • Ubuntu中使用netcat发送16进制网络数据包
  • android 11.0 打开ALOGV ALOGI ALOGD日志输出的方法
  • git 多用户管理 跨平台
  • 远程玩3A大作要多少帧?ToDesk、向日葵、UU远程性能对决
  • mysql 安装vc++2013 没有权限问题。
  • 使用 DHTMLX Gantt 添加迷你地图:提升大型项目可视化与导航体验