微信搜索【前端食堂】你的前端食堂,记得按时吃饭。

本文已收录在前端食堂 Github https://github.com/Geekhyt/front-end-canteen,感谢Star。

每每提及色彩,我总会想起苏轼的一年好景君须记,正是橙黄橘绿时,白居易的日出江花红胜火,春来江水绿如蓝,朱熹的等闲识得东风面,万紫千红总是春

也许世界本无色彩。

古人曾用诗词赋予了这个世界色彩,而如今是物理的光学让我们认识到了色彩。那么本文将带你揭秘CSS中的色彩。

先赞在看,养成习惯!

CSS中的color

CSS1只支持16个基本颜色关键字

CSS2在CSS1的基础上添加了橙色orange

CSS3增加了147个关键字

CSS4只增加了一个关键字 rebeccapurple

链接:CSS3中新增147个颜色关键字

我知道你会说这个CSS4的新增的一个关键字rebeccapurple是什么鬼?还嫌我英文单词记的不够多吗?搞个这么难记的东西出来?

但实际上,CSS的作者Eric Meyer 的女儿丽贝卡死于脑癌,享年六岁。这是她最喜欢的颜色。

丽贝卡紫

链接:为了纪念 Eric Meyer 的女儿,色值 #663399 在 CSS4 中被定义为 「rebeccapurple」

冰冷严谨的代码中充满了如此温情之举,你值得记忆。

RGB

三原色理论告诉我们,红、绿、蓝三种颜色的光可以构成所有的颜色。

为什么是这三种颜色呢?

因为人类的视神经对这三种颜色比较敏感。

现代计算机中用0-255的数字来表示每一种颜色。在RGB颜色表示方法中,三色数值最大的就是白色,三色数值为0则表示黑色。理解起来也比较符合人类的认知,红绿蓝三种颜色的光混合起来就是白光,没有光就是黑色。

除此之外,我们需要注意两点:

1.rgb数值格式只能是整数,不能是小数。

2.还可以用百分比来进行表示,百分比范围0%-100%

RGB表示法

#div {background-color:rgb(255,0,0);} /* 红 */
#div {background-color:rgb(0,255,0);} /* 绿 */
#div {background-color:rgb(0,0,255);} /* 蓝 */

16进制表示法 HEX

十六进制颜色实际上和rgb颜色是近亲,都归属于rgb颜色,只是进制有差异。

#div {background-color:#FF0000;} /* 红 */
#div {background-color:#00FF00;} /* 绿 */
#div {background-color:#0000FF;} /* 蓝 */

RGBA

RGBA是在RGB的扩展,增加了一个Alpha的色彩通道,规定了透明度(取值范围0~1),0表示全透明。

RGBA代码

div {background:rgba(255,0,0,0.5);}

RGBA与opacity的区别?

opacity是属性,rgba()是函数,计算之后是个属性值。

rgba一般修改的是背景色或者文本的颜色,内容不会继承透明度。

opacity作用于元素和元素的内容,内容会继承透明度。

HSL

人类对颜色的感知是远远大于红、绿、蓝的,因此HSL颜色模型被设计出来。

HSL分别代表色相,纯度以及明度,也有色调、饱和度、亮度的说法。

h表示hue,取值0-360。大致按照红橙黄绿青蓝紫变化 0 (或 360) 为红色, 120 为绿色, 240 为蓝色

s表示saturation,用0-100%表示。值越大,饱和度越高,颜色越亮 0%为灰色,100%为全色

l表示lightness,用0-100%表示。值越高,颜色越亮,100%是白色,50%是正常亮度,0%就是黑色

HSLA

如同RGBA模式是RGB的扩展模式,HSLA模式是HSL的扩展模式,在HSL的基础上增加一个透明通道Alpha来设置透明度。

CMYK

回忆起儿时美术老师(我们区的美术协会主席)曾经教过,颜料的三原色是“红黄蓝”。

而颜料能够显示颜色的原理是它吸收了所有别的颜色的光,只返回一种色彩。这个世界就是这么魔幻,你看到的不一定是你看到的。

颜料三原色是红、绿、蓝的补色,也可以叫它们“品红、黄、青”。这种颜色表示法就叫做CMYK

熟悉UI设计的同学们一定知道,在印刷业,就是采用颜料三原色来配置油墨。不过除了品红、黄、青外,因为黑色颜料常用并且价格低廉,所以被单独指定。

transparent

transparent用来指定全透明色彩,我们可以利用这个属性画出三角形。

.triangle {width: 0;height: 0;border-left: 50px solid transparent;border-right: 50px solid transparent;border-bottom: 50px solid #ff0000;
}
<div class="triangle"></div>

transparent也比较魔幻,background-color:transparent包括IE6都支持,boder-color:transparent从IE7开始支持,但是color:transparent却从IE9浏览器开始支持。

currentColor

currentColor的意思是使用当前color的计算值,也从IE9+才支持。

CSS中很多的属性值默认就是currentColor的表现。

div {color: red;border: 1px solid;
}

一般情况下无须画蛇添足的添加currentColor。

div {color: red;border: 1px solid currentColor;
}

兼容性查询

授人以鱼不如授人以渔。

大家可以去这个网站查找你所要用的属性在浏览器中的兼容性。

「进击的前端工程师」CSS色彩揭秘相关推荐

  1. 只招「测试开发工程师」了

    早些年(或者你入行前听说的 / 你在书本上看到的),也许有「自动测试工程师,性能测试工程师,安全测试工程师」等岗位 . 然而,随着这几年的企业最佳实战,及「围绕高效干活为目的」的落地 : 大有变化 . ...

  2. 「高级java工程师」常见面试题及其答案(持续更新)

    「java工程师」常见面试题及其答案请见: 「java工程师」常见面试题及其答案(持续更新)_好人老李的博客-CSDN博客 目录 java基础 常用的 jvm 调优方法? OOM的常见场景及其原因.解 ...

  3. 「后端小伙伴来学前端了」CSS 做三角边框,必会的基础操作之一

    前言: 这个也是我最近学习才发现的一个细节,就是常常会在一些网站,看到下面图中这样的一个小三角,以前没怎么学CSS,我一直以为它是个精灵图之类.

  4. 「纯前端容器」打造无缝平滑的用户体验

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 前端性能现状 提到前端你最先想到什么?前端工程?web?JavaScript.CSS.HTM ...

  5. 「 WEB测试工程师 」岗位一面总结

    近期企业外包类项目有一定的招聘需求,聊聊面试的感受以及分享一下初级测试工程师的面试过程 面试时间:07.04 14:00 1. 面试者介绍 个人基本信息 1.学历:统招全日制本科 2.工作年限:(可接 ...

  6. div中的p标签于img设置同一水平_前端工程师:css中一些需要注意的东西

    html标签有三大性质,如果不清楚这些东西,在使用css添花的时候可能会糊涂的不知所措. 一.块级元素 块元素会独自占据一整行,或者多行,可以任意设置其大小尺寸,是用于搭建网页布局的必须部分,使网页结 ...

  7. 「中高级前端进阶」从零开始手写一个 vue-cli 脚手架

    关注我的小伙伴应该知道,我之前写过一篇脚手架相关的文章,在掘金收获了近一千个赞,被前端大全和奇舞周刊公众号转载. 可以说自定义脚手架是每一个中高级前端都应该具备的能力. 1. 脚手架带来的便利 在现在 ...

  8. 【面试题】 「中高级前端面试」JavaScript手写代码无敌秘籍

    大厂面试题分享 面试题库 前端面试题库 (面试必备)   推荐:★★★★★ 地址:前端面试题库 1. 实现一个new操作符 new操作符做了这些事: 它创建了一个全新的对象. 它会被执行[[Proto ...

  9. 「java工程师」常见面试题及其答案(持续更新)

    「高级java工程师」常见面试题及其答案: 「高级java工程师」常见面试题及其答案(持续更新)_好人老李的博客-CSDN博客 目录 java基础 面向对象与面向过程的区别? JRE.JDK.JVM的 ...

最新文章

  1. 在Mac上使用pip3安装交互式环境IPython实录
  2. 关闭图片 pycharm_博士大佬总结的Pycharm 常用快捷键思维导图,收藏!
  3. 【软件工程】CMMI 能力成熟度模型集成 ( 简介 | 相关术语 | CMMI 等级评估次序 )
  4. WDA将改变现有的abap的开发方式
  5. IE Mobie6清除浮动
  6. STM32中断方式接收方式每次一个字节同时发生接收一段时间后不能再次接收问题
  7. android studio grandle错误,flutter android studio构建失败
  8. 浅谈压缩感知(十六):感知矩阵之RIP
  9. element-ui 组件库 el-form 实现
  10. SQL Server 2012完全备份、差异备份、事务日志备份和还原操作
  11. 【融职教育】Web全栈工程师浸入式课程体系
  12. html苹果笔记本文稿如何转换,苹果电脑的pages文档想要变成word格式该如何转换...
  13. 小程序数据监测工具分析
  14. mysql batch insert_使用batch insert解决MySQL的insert吞吐量问题
  15. 机器学习和深度学习资料汇总【02】
  16. 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】
  17. Mac 卸载重装 brew
  18. HB 7066机舱内部非金属材料毒性测定
  19. 【论文导读】- E-LSTM-D: A Deep Learning Framework for Dynamic Network Link Prediction(动态网络链接预测)
  20. 找计算机研究的论文18个平台

热门文章

  1. 计算机专业硕士论文评语,硕士论文答辩导师评语
  2. Checksum: 0x7259 [incorrect, should be 0x0a75 (maybe caused by TCP checksum offload?)]
  3. James的温故Log - Java : 前 言
  4. Can't locate Automake/Config.pm in @INC(@INC contains: /usr/local/share/automake-1.14 /xxxxx)
  5. 关闭本机的445端口
  6. 第 6 讲 SpringBoot集成Cros解决跨域问题
  7. Nginx配置cros跨域以及遇到401响应的问题
  8. 【百度霸屏】搜索引擎算法大全
  9. 爬取贝壳平台新房数据并可视化
  10. Android 读取excel (支持 xls和xlsx)