css rgba/hsla知识点讲解及半透明边框

 一、RGBA(R,G,B,A)

参数:

R:红色值。正整数 | |百分数
G:绿色值。正整数 | |百分数
B:蓝色值。正整数 | |百分数
A:Alpha透明度。取值0~1之间。

说明:此色彩模式与RGB相同,只是在RGB模式上新增了Alpha透明度。

RGBA 颜色值得到以下浏览器的支持:IE9+、Firefox 3+、Chrome、Safari 以及 Opera 10+。

二、HSLA(h,s,l,a)

HSL 指的是 hue(色调)、saturation(饱和度)、lightness(亮度),它表示颜色柱面坐标表示法。

HSL 颜色值是这样规定的:hsl(hue, saturation, lightness)。

Hue 是色盘上的度数(从 0 到 360) - 0 (或 360) 是红色,120 是绿色,240 是蓝色。

Saturation 是百分比值;0% 意味着灰色,而 100% 是全彩。

Lightness 同样是百分比值;0% 是黑色,100% 是白色。

HSLA 颜色值是 HSL 颜色值的扩展,带有一个 alpha 通道 - 它规定了对象的不透明度。

HSLA 颜色值是这样规定的:hsla(hue, saturation, lightness, alpha),其中的 alpha 参数定义不透明度。alpha 参数是介于 0.0(完全透明)与 1.0(完全不透明)的数字。

HSLA 颜色值得到以下浏览器的支持:IE9+、Firefox 3+、Chrome、Safari 以及 Opera 10+。

小应用:半透明边框

给一个容器加一个白色背景和一道半透明的白色边框:

起初,我是这样写的:

div{
border:10px solid  hsla(0,0%,100%,.5);
background:white;
}

body{background:pink}

 

发现问题:

半透明边框不起作用:

怎么回事?后来查询资料:

其实边框是存在的,只不过这个容器的自己的白色背景,透过了白色边框;而不是body元素的背景透过白色边框(这是才是我们想要的效果),所以实际上看到的效果跟纯白实色的边框完全一样。

解决方案:

在css 2.1中,这就是背景的工作原理,我们只能接受且向前看。幸运的是,我们可以通过,background-clip属性来调整上述默认行为带来的困惑。

background-clip

默认的值是 border-box  它表示背景会被元素的border box(边框的外沿框)裁切掉。如不想背景侵入到边框所在的领地,则可以用它的另一个值 padding-box

这样,浏览器就会用内边距的外沿把背景裁切掉。

div{
border:10px solid  hsla(0,0%,100%,.5);
background:white;
background-clip:padding-box;
}

body{background:pink}

 

look OK~

原文地址:https://www.cnblogs.com/rain-null/p/6622437.html