曾经,CSS 颜色的写法很专一,就只有十六进制写法(#ff0000)和关键字写法(red)。

现在,它变了,变得花样多了,各种招式眼花缭乱。

以红色(red)为例:

1. 颜色关键字

直接使用预定义的颜色名称:

color: red;
  • 解释

    直接使用关键词 red。

2. 6位十六进制

使用完整的 6 位十六进制(#RRGGBB):

color: #ff0000;
  • 解释

    ff: 红色分量(十进制 255);

    00: 绿色分量(十进制 0);

    00: 蓝色分量(十进制 0)。

3. 3位十六进制

使用简写的 3 位十六进制(#RGB):

color: #f00; /* 等价于 #ff0000 */
  • 参数:

    f: 红色分量(ff,即十进制 255);

    0: 绿色分量(00,即十进制 0);

    0: 蓝色分量(00,即十进制 0)。

4. 8位十六进制(带透明度)

使用 8 位十六进制(#RRGGBBAA),最后两位表示透明度(00为完全透明,ff为不透明):

color: #ff000080; /* 红色,50% 透明度 */
  • 参数:

    ff: 红色分量(255);

    00: 绿色分量(0);

    00: 蓝色分量(0);

    80: 透明度分量(十六进制 80 = 十进制 128,即 50% 透明度)。

5. RGB 函数

使用 rgb() 函数指定红、绿、蓝分量(0-255):

color: rgb(255, 0, 0);
  • 参数:

    255: 红色分量(0-255);

    0: 绿色分量(0-255);

    0: 蓝色分量(0-255)。

6. RGBA 函数

使用 rgba() 函数,额外指定透明度(0-1):

color: rgba(255, 0, 0, 0.5); /* 红色,50% 透明度 */
  • 参数:

    255: 红色分量(0-255);

    0: 绿色分量(0-255);

    0: 蓝色分量(0-255);

    0.5: 透明度(0=透明,1=不透明)。

7. HSL 函数

使用 hsl() 函数通过色相(0-360)、饱和度(0%-100%)、明度(0%-100%)表示:

color: hsl(0, 100%, 50%); /* 色相 0 度(红色),100% 饱和度,50% 明度 */
  • 参数:

    0: 色相(0-360 度,0°=红色,120°=绿色,240°=蓝色);

    100%: 饱和度(0%=灰色,100% 最鲜艳);

    50%: 明度(0%=黑色,100%=白色,50% 为基准颜色)。

8. HSLA 函数

使用 hsla() 函数,额外指定透明度(0-1):

color: hsla(0, 100%, 50%, 0.5); /* 红色,50% 透明度 */
  • 参数:

    0: 色相(0-360 度);

    100%: 饱和度;

    50%: 明度;

    0.5: 透明度(0-1)。

9. HWB 函数(较新)

使用 hwb() 函数通过色相(0-360)、白度(0%-100%)、黑度(0%-100%)表示:

color: hwb(0 0% 0%); /* 色相 0 度,0% 白度,0% 黑度 */
  • 参数:

    0: 色相(0-360 度);

    0%: 白度(混合白色的比例,0%-100%);

    0%: 黑度(混合黑色的比例,0%-100%)。

    注意:白度 + 黑度 ≤ 100%,超出会被规范化。

浏览器兼容性:

10. LAB() 函数(较新)

基于 CIE LAB 颜色空间(人眼感知的色彩模型):

color: lab(53.23% 80.09 67.2); /* 亮度 53.23%,a 轴 80.09,b 轴 67.2 */
  • 参数:

    53.23%: 亮度(Lightness),范围 0%-100%;

    80.09: a 轴(绿-红轴),负值偏绿,正值偏红;

    67.2: b 轴(蓝-黄轴),负值偏蓝,正值偏黄。

浏览器兼容性:

11. LCH() 函数(较新)

基于 LCH 颜色空间(亮度、色度、色相的极坐标形式):

color: lch(53.23% 104.55 40.85); /* 亮度 53.23% ,色度 104.55 ,色相 40.85 */
  • 参数:

    53.23%: 亮度(Lightness),范围 0%-100%;

    104.55: 色度(Chroma),数值越大颜色越鲜艳;

    40.85: 色相(Hue),0-360 度的角度值(红色约在 0-50 度之间)。

浏览器兼容性:


最新版本的 Chrome 浏览器已支持全部写法,如图:

删除线并不是说不支持这种写法,而是同一条规则中相同的 css 属性,只会有一条生效,其他的将会被丢弃。

总结

9 种常见写法,涵盖颜色关键字、十六进制、RGB/RGBA、HSL/HSLA 和 HWB。

其他高级颜色空间(如 lab()lch())根据兼容情况,选择性使用。

Web前端入门第 25 问:CSS 中 11 种颜色写法的更多相关文章

  1. web前端入坑第五篇:秒懂Vuejs、Angular、React原理和前端发展历史

    秒懂Vuejs.Angular.React原理和前端发展历史 2017-04-07 小北哥哥 前端你别闹 今天来说说 "前端发展历史和框架" 「前端程序发展的历史」 「 不学自知, ...

  2. 好程序员web前端分享值得参考的css理论:OOCSS、SMACSS与BEM

    好程序员web前端分享值得参考的css理论:OOCSS.SMACSS与BEM 最近在The Sass Way里看到了Modular CSS typography一文,发现文章在开头部分就提到了OOCS ...

  3. 进击的Python【第十三章】:Web前端基础之HTML与CSS样式

    进击的Python[第十四章]:Web前端基础之HTML与CSS样式 一.web框架的本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客 ...

  4. Android零基础入门第25节:最简单最常用的LinearLayout线性布局

    原文:Android零基础入门第25节:最简单最常用的LinearLayout线性布局 良好的布局设计对于UI界面至关重要,在前面也简单介绍过,目前Android中的布局主要有6种,创建的布局文件默认 ...

  5. 好程序员web前端分享18个用CSS制作出来的东西

    好程序员web前端分享18个用CSS制作出来的东西,与流行的看法相反,CSS不仅仅是用来提供一个WEB页面的基本风格,以使它看起来更有吸引力.还有很多其他的事情,CSS也可以做的很好.由于它创建动画和 ...

  6. web前端入坑第二篇:web前端到底怎么学?干货资料! 【转】

    http://blog.csdn.net/xllily_11/article/details/52145172 版权声明:本文为博主[小北]原创文章,如要转载请评论回复.个人前端公众号:前端你别闹,J ...

  7. web前端学习(三)css学习笔记部分(8)-- SVN的介绍和应用、CSS动画效果、CSS3布局属性全接触

    15.SVN的介绍和应用 15.1.SVN的介绍和应用课程概要 将代码进行集中管理,有版本号的进行迭代,方便集体工作的build流程 15.2.SVN的介绍 SVN是Subversion的简称,是一个 ...

  8. Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)

    Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维护,根据MIT许可证发布,支持 Wind ...

  9. web前端(7)—— 了解CSS样式,引入css样式的方式

    CSS 在前面大概的介绍了css,从本片博文开始,会详细的介绍它,在最开始介绍web前端时,打开百度首页,当时我提出了一个问题,为什么百度首页的输入框可以放在正中间,就是由于有css的控制,我们可以打 ...

  10. [转载]Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)

    http://brackets.io/ Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维 ...

随机推荐

  1. 阿里云产品之数据中台架构-copy

    1. 场景描述 客户打包买了很多阿里云的产品,但是阿里云不负责实施,基于阿里云产品与客户需求,拟采用的数据中台架构,有类似需求的,可以参考下,拿走不谢! 2. 解决方案 阿里产品大数据架构图: 从下到 ...

  2. 单点登录-CAS原理

    1.首先了解几个概念 1).TGC:Ticket-granting cookie,存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用.2).TGT:ticket grant ...

  3. 彻底讲透Spring Bean生命周期,源码深度剖析!

    前言本篇文章主要是要介绍如何在Spring IoC 容器中 如何管理Spring Bean生命周期. 在应用开发中,常常需要执行一些特定的初始化工作,这些工作都是相对比较固定的,比如建立数据库连接,打 ...

  4. w3cschool-Netty 实战精髓篇2

    https://www.w3cschool.cn/essential_netty_in_action/essential_netty_in_action-adkv28bm.html 研究Netty中的 ...

  5. nginx平台初探-2

    handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ...

  6. 学Shiro完结版-3

    第八章 拦截器机制--<跟我学Shiro> 8.1 拦截器介绍 Shiro使用了与Servlet一样的Filter接口进行扩展:所以如果对Filter不熟悉可以参考<Servlet3 ...

  7. C#/.NET/.NET Core技术前沿周刊 | 第 22 期(2025年1.13-1.19)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  8. Centos 7 安装Redis5 详细步骤 备忘录笔记

    通过wget下载tar包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 解压包 tar -zxvf redis-5.0.5.tar ...

  9. Android高版本Service在后台一分钟被杀死

    最近公司出现了一个Bug,Service在后台写log时候一分钟左右被杀死,或者运行一会就被杀死了,上网搜了一下原来是Android高版本为了保护电量,流量什么的,会在后台杀死这些Service,现在 ...

  10. Element-UI 使用心得之el-card

    el-card 是Element-UI  内置的卡片组件,使用起来很方便,但是对Vuejs和html 不是精通的话,根据自己的要求布局,会出现自己的小困惑,必须添加垂直居中,按照CSS 布局设置,总是 ...