惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
GbyAI
GbyAI
博客园 - 司徒正美
美团技术团队
Vercel News
Vercel News
IT之家
IT之家
U
Unit 42
Y
Y Combinator Blog
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
V
Visual Studio Blog
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MyScale Blog
MyScale Blog
博客园 - 叶小钗
A
About on SuperTechFans
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed

囧克斯

奔四了,写给40岁的自己 有序退网 我和 Vue.js 的十年 我参与《代码之外 Beyond Code》的故事 博客站迁移至 VitePress 的备忘 写给我的奶奶 中文格式化小工具 zhlint 及其开发心得 vue-mark-display:用 markdown 语法轻松撰写幻灯片 我对技术会议的一些看法 VueConf Hangzhou 见闻 第四届 CSSConf CN 见闻 [译]Web 表单的未来 [译]苹果正在做一些他们的程序员明摆着不想要的东西 [译]为什么我不会无偿加班且你也不应该 [译]如果管理是唯一可走的路,那就完蛋了 [译]如何撰写 Git 提交信息 [译]C 程序的原则 Vue 2.0 来了! Weex 近 4 个月的开源之路 Weex 在 JS Runtime 内的多实例管理 我理解的 SPA 我理解的 Flux 架构 【整理】Vue 2.0 自 beta 1 到 beta 4 以来的主要更新 通过一张图走进 Vue 2.0 Code Review for Vue 2.0 Preview Vue 2.0 发布啦! 务实的小而美 Vue.js 1.0.0 发布了! [译]如何成为一名卓越的前端工程师 手机淘宝前端的图片相关工作流程梳理
CSS 中的颜色属性 color 知多少?
勾三股四 · 2011-03-10 · via 囧克斯

本文摘自 勾三股四 更早时期的 不老歌 博客。


真相在此:http://www.w3.org/TR/2003/CR-css3-color-20030514/#colorunits
----------------------------------------------
首先,css 的 color 属性值,可以是一个关键字定义,也可以通过数值来定义。且两者都有多种定义的形式。

HTML 4 颜色关键字(HTML 4 color keywords)

Black = #000000
Green = #008000
Silver = #C0C0C0
Lime = #00FF00
Gray = #808080
Olive = #808000
White = #FFFFFF
Yellow = #FFFF00
Maroon = #800000
Navy = #000080
Red = #FF0000
Blue = #0000FF
Purple = #800080
Teal = #008080
Fuchsia = #FF00FF
Aqua = #00FFFF
例如:

body {color: black; background: white }
h1 { color: maroon }
h2 { color: olive }

数值定义

RGB颜色值

这个最常见了,不过一共有两种写法,例如:

em { color: #f00 }              /* #rgb */
em { color: #ff0000 } /* #rrggbb */
em { color: rgb(255,0,0) } /* integer range 0 - 255 */
em { color: rgb(100%, 0%, 0%) } /* float range 0.0% - 100.0% */

还有一点需要注意,如果数值超出了正常范围(比如负数或超过255的整数等等),则会取合理范围内的极限值,比如:

em { color: rgb(255,0,0) }       /* integer range 0 - 255 */
em { color: rgb(300,0,0) } /* clipped to rgb(255,0,0) */
em { color: rgb(255,-10,0) } /* clipped to rgb(255,0,0) */
em { color: rgb(110%, 0%, 0%) } /* clipped to rgb(100%,0%,0%) */

RGBA颜色值

在RGBA的基础上,多了一个alpha通道透明度的定义,例如:

em { color: rgb(255,0,0) }      /* integer range 0 - 255 */
em { color: rgba(255,0,0,1) /* the same, with explicit opacity of 1 */

穿插:transparent 关键字

透明,无颜色,相当于rgba(0,0,0,0)

HSL颜色值

一个整数 + 两个百分数,分别表示色相、饱和度和亮度。例如:

* { color: hsl(0, 100%, 50%) }   /* red */
* { color: hsl(120, 100%, 50%) } /* green */
* { color: hsl(120, 100%, 25%) } /* light green */
* { color: hsl(120, 100%, 75%) } /* dark green */
* { color: hsl(120, 50%, 50%) } /* pastel green, and so on */

这样的写法目前还不太常见,但这样的定义方式给颜色渐变的计算带来了很多方便,或许将来会大有所为哦:)

HSLA颜色值

同理,在HSL的基础上加入了alpha透明通道。比如:

em { color: hsl(120, 100%, 50%) }     /* green */
em { color: hsla(120, 100%, 50%, 1) } /* the same, with explicit opacity of 1 */

SVG颜色关键字

道理和HTML4的颜色关键字类似但范围更广,这里略去。

currentColor颜色关键字

表示与当前元素的color属性值相同,多用在使得边框颜色和文字颜色一直等地方。

系统颜色(CSS System Colors)

这些颜色很神奇,它会根据你的运行环境,代表与之相匹配颜色。比如我们希望某个div的文字颜色、背景色和操作系统tooltip的颜色保持一致,就可以写

.tooltip {color: InfoText; background: InfoBackground}

有的时候我们希望页面样式和我们的操作系统完美融合到一体,不妨试试这些属性值:

CSS 2 系统颜色

ActiveBorder
ActiveCaption
AppWorkspace
Background
ButtonFace
ButtonHighlight
ButtonShadow
ButtonText
CaptionText
GrayText
Highlight
HighlightText
InactiveBorder
InactiveCaption
InactiveCaptionText
InfoBackground
InfoText
Menu
MenuText
Scrollbar
ThreeDDarkShadow
ThreeDFace
ThreeDHighlight
ThreeDLightShadow
ThreeDShadow
Window
WindowFrame
WindowText

Flavor系统颜色

这个关键字有点生僻了,我自己都没用过也没见过,文档里第一次看到,暂不细说了

最后,尽管color属性值可以有很多种方式,可以显示出各种效果,但别让网页的内容过分依赖于颜色,尽量让网页内容不通过颜色的修饰,也可以正常的表达意思(Ensure that text and graphics are understandable when viewed without color.)。