提示

本文主要讲解 CSS 颜色的使用。@ermo

# CSS3 颜色

# 颜色增强语法

RGBA(Red Green Blue Alpha) 是 RGB 的一个增强方法,用于设置 CSS 颜色。A 表示 Alpha,用于设置颜色的透明的,范围在 0.0~1.0 之间,值越大越不透明。

<div class="p1">p1</div>
<div class="p2">p2</div>
<div class="p3">p3</div>
<div class="p4">p4</div>
.p1 {
    background-color: rgba(255, 0, 0, 0.2);
}
.p2 {
    background-color: rgba(255, 0, 0, 0.4);
}
.p3 {
    background-color: rgba(255, 0, 0, 0.6);
}
.p4 {
    background-color: rgba(255, 0, 0, 0.8);
}

HSL(Hue Saturation Lightness)是颜色的另一种表达方式,HSL 是色调、饱和度、亮度的组合。

语法为:

hsl(色调, 饱和度, 亮度)

每一个参数的取值规则:

  • 色调:取值为0~360数值,0和360都是红色,120是绿色,240为蓝色
  • 饱和度:取值为0~100百分比,数值越大,饱和度越高
  • 亮度:取值为0~100百分比,0%为暗黑色,100%为亮白色

示例:

<div class="h1">h1</div>
<div class="h2">h2</div>
<div class="h3">h3</div>
<div class="h4">h4</div>
.h1 {
    /* 绿色 */
    background-color: hsl(120, 100%, 50%);
}

.h2 {
    /* 浅绿色 */
    background-color: hsl(120, 100%, 75%);
}
.h3 {
    /* 深绿色 */
    background-color: hsl(120, 100%, 25%);
}
.h4 {
    /* 淡绿色 */
    background-color: hsl(120, 60%, 70%);
}

HSLA(Hue Saturation Lightness)是 HSL 的增强语法,A 表示透明的,透明度的取值范围在 0.0~1.0,数值越大透明的越低。

示例:

<div class="hsla1">hsla1</div>
<div class="hsla2">hsla2</div>
<div class="hsla3">hsla3</div>
<div class="hsla4">hsla4</div>
.hsla1 {
    background-color: hsla(120, 100%, 50%, 0.3);
}
.hsla2 {
    background-color: hsla(120, 100%, 75%, 0.3);
}
.hsla3 {
    background-color: hsla(120, 100%, 25%, 0.3);
}
.hsla4 {
    background-color: hsla(120, 100%, 70%, 0.3);
}

透明度有一个单独的属性 opacity,上文中可以通过 HSLA 和 RGBA 作为一个参数设置透明度,也可以使用单独属性 opacity 设置透明度。数值在 0.0~1.0 之间,数值越大,越不透明。

示例:

<div class="op1">op1</div>
<div class="op2">op2</div>
<div class="op3">op3</div>
.op1 {
    background-color: rgb(255, 0, 0);
    opacity: 0.6;
}

.op2 {
    background-color: rgb(0, 255, 0);
    opacity: 0.6;
}

.op3 {
    background-color: rgb(0, 0, 255);
    opacity: 0.6;
}

# 颜色关键字

transparent 关键字的作用是将一个元素的背景色设置为透明。

        <div class="parent">
            <div class="box1">box1 不透明</div>
            <div class="box2">box2 透明</div>
        </div>
.parent {
    width: 400px;
    height: 400px;
    background-color: burlywood;
}
.box1 {
    width: 200px;
    height: 50px;
    border: 2px solid black;
    background-color: green;
    padding: 10px
}

.box2 {
    width: 200px;
    height: 50px;
    border: 2px solid black;
    background-color: transparent;
    padding: 10px
}

currentColor 是 css 的一个关键字,使用起来更像是一个变量,存储的是当前元素上的颜色。

这个当前颜色指的是变量 currentColor 所在的元素上的 color 值,如果当前元素没有设置颜色,系统会自动向父元素寻找,一直向上找,直到找到 body 为止。全部没有设置颜色就使用默认颜色。

看一个简单例子。

<div class="current">a simple text.</div>
.current {
    color: pink;
    border: 10px solid currentColor;
    padding: 2px;
}

上例中的 div 文字颜色是粉色,边框使用当前元素的颜色,所以边框也是粉色。

除了可以应用到 border 上,还可以应用到 background-colorbox-shadow 属性。

div {
    background-clolor: currentColor;
    padding: 10px;
}
div {
    box-shadow: 0px 0px 10px currentColor;
    border: 1px solid currentColor;
    padding: 1px;
}

inherit 关键字可以继承父元素相同属性对应的值。

<div>这是一个 <span>span</span>,外面是 div</div>
div {
    border: 2px solid pink;
}
span {
    border: inherit;
}

上例中 span 元素的边框样式继承了父元素 div 边框的样式。