css 浅色背景下文字颜色怎么选_通过对比度计算说明方法

老强姑娘_4836

老强姑娘_4836

2026-01-20

665人浏览

原创

WCAG 2.1 要求正常文本对比度≥4.5:1,需用相对亮度公式(L1+0.05)/(L2+0.05)计算,不可凭经验判断;例如#ffffff配#333333为4.48:1不达标,而#212529为4.67:1达标。

css 浅色背景下文字颜色怎么选_通过对比度计算说明方法

对比度公式必须用 WCAG 2.1 的 4.5:1 标准

浅色背景(比如 #ffffff、#f8f9fa)下文字是否可读,不能靠“看着还行”判断。WCAG 2.1 明确要求正常文本(小于 18pt 或 14pt 加粗)的对比度至少为 4.5:1。这个比值不是简单算 RGB 差值,而是基于相对亮度和对比度函数:先算两个颜色的 L1 和 L2(归一化后的相对亮度),再代入公式 (L1 + 0.05) / (L2 + 0.05)(亮色为 L1,暗色为 L2)。浏览器 DevTools 的无障碍面板会自动计算,但手动验证时得用这个公式——否则用错公式(比如只看灰度差)会导致误判。

常见浅色背景对应的安全文字色速查

不是所有深灰都达标。例如在 #ffffff 上,#333333 对比度是 4.48:1,**不达标**;而 #212529(Bootstrap 默认 body 文字色)是 4.67:1,刚好过线。其他典型组合:

  • #f8f9fa 背景 → 至少用 #212529(4.52:1),不用 #343a40(4.49:1)
  • #e9ecef 背景 → 必须用 #212529(4.51:1),#343a40 只有 4.28:1
  • #dee2e6 背景 → 即使 #212529 也仅 4.33:1,得换更黑的,如 #1a1e23(4.53:1)

用 JavaScript 实时验算对比度(避免手动查表)

开发中常需动态检查配色,直接调用浏览器原生 API 最稳:window.getComputedStyle 拿到颜色后,用 getContrastRatio(部分浏览器支持)或自己实现 WCAG 公式。更通用的做法是复用成熟库逻辑,比如 color-contrast npm 包,或抄一段轻量函数:

Java Api Extractor
Java Api Extractor

从 Java 项目中提取 Controller 层接口定义为 JSON 数据。

下载
function getLuminance(hex) {
  const rgb = /^#([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i.exec(hex);
  const r = parseInt(rgb[1], 16) / 255;
  const g = parseInt(rgb[2], 16) / 255;
  const b = parseInt(rgb[3], 16) / 255;
  const a = [r, g, b].map(v => v function getContrastRatio(color1, color2) {
const l1 = getLuminance(color1);
const l2 = getLuminance(color2);
return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05);
}<p>// 示例:getContrastRatio('#ffffff', '#212529') → ~4.67</p>

灰色系文字在浅背景上最容易翻车

设计师偏爱浅灰文字(如 #6c757d)营造“柔和感”,但它在 #ffffff 上对比度只有 2.9:1,连 AA 级最低要求都不到。更隐蔽的问题是:同一段 CSS 里 color: #495057 在 #f8f9fa 上勉强达标(4.52:1),但若背景被覆盖成 #e9ecef(比如悬停态或主题切换),立刻掉到 4.28:1 —— 这种上下文依赖的失效,往往要等做无障碍审计时才暴露。所以别迷信固定色值,优先用 CSS 自定义属性配合 @media (prefers-contrast: high) 做兜底。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
bootstrap框架介绍
bootstrap框架介绍

本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

2026.03.18

745

21

bootstrap安装教程
bootstrap安装教程

本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

2026.03.18

199

9

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

40

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

20

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

40

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

140

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

80

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

80

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

40

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 6.1万人学习

CSS教程
CSS教程

共754课时 | 99.2万人学习