css的透明度

497 阅读4分钟

opacity

opacity 属性指定了一个元素的不透明度。换言之,opacity 属性指定了一个元素后面的背景的被覆盖程度。
当 opacity 属性的值应用于某个元素上时,是把这个元素(包括它的内容)当成一个整体看待,即使这个值没有被子元素继承。因此,一个元素和它包含的子元素都会具有和元素背景相同的透明度,哪怕这个元素和它的子元素有不同的 opacity 属性值。

rgba

r:红色值;g:绿色值;b:蓝色值。三个颜色值组合在一起就形成最终颜色。
a:alpha 透明度,表示像素不透明性的值。像素越不透明,则隐藏越多呈现图像的背景。取值 0~1 之间。0表示完全透明的像素,1表示完全不透明的像素。

transparent

设置元素的背景颜色为透明,是颜色的一种,这种颜色叫透明色。

书写格式:

background-color: transparent;

LintCode官方题解

官方题解

发布于 2022-02-27

Chrome

解题思路

通过 CSS 中的 opacity 属性改变不透明度


题解代码

style.css

chrome
1
2
3
4
5
6
7
8
9
.light{
    opacity: 0.2;
}
.medium{
    opacity: 0.5;
}
.heavy{
    opacity: 0.8;
}

知识点

opacity

opacity 属性指定了一个元素的不透明度。换言之,opacity 属性指定了一个元素后面的背景的被覆盖程度。
当 opacity 属性的值应用于某个元素上时,是把这个元素(包括它的内容)当成一个整体看待,即使这个值没有被子元素继承。因此,一个元素和它包含的子元素都会具有和元素背景相同的透明度,哪怕这个元素和它的子元素有不同的 opacity 属性值。

opacity 的取值

取值作用
数值选取 0.0 到 1.0 范围内的数字值,这个数值既包含也代表通道的透明度。任何一个溢出这个取值区间的值,尽管有效但会被解析为在取值范围内最靠近它的值。
数值的取值范围含义
0元素完全透明(元素不可见)
(0.0, 1.0)元素半透明(元素后面的背景可见)
1元素完全不透明(即元素后面的背景不可见)

现在我们来回顾一些基础知识点:

rgba

r:红色值;g:绿色值;b:蓝色值。三个颜色值组合在一起就形成最终颜色。
a:alpha 透明度,表示像素不透明性的值。像素越不透明,则隐藏越多呈现图像的背景。取值 0~1 之间。0表示完全透明的像素,1表示完全不透明的像素。

书写格式:

1
background-color: rgba(255, 255, 255, 0.5);

transparent

设置元素的背景颜色为透明,是颜色的一种,这种颜色叫透明色。

书写格式:

1
background-color: transparent;

rgba,transparent 和 opacity 属性 的区别

  1. opacity 是作为一个完整的属性出现,transparent 和 rgba 作为属性值出现。
  2. opacity 相对于整个元素起作用,就像拿一块玻璃(遮罩层)盖在了这个元素上,盖上的地方都会受到影响。而 transparent 和 alpha 是对元素的某个属性起作用的,任何需要设置颜色的地方都可以根据情况使用 transparent 或 rgba,如背景颜色、边框颜色、字体颜色等等。
  3. 由于 opacity 和 alpha 设置的透明程度可调,就会产生子元素可否继承的问题。其中,alpha 值不存在继承。

opacity: 0;display: none; 和 visibility: hidden 的区别

  1. opacity: 0; 意思是设置透明度为 100%,设置该属性的元素会被隐藏,但仍占据空间;设置了 visibility: hidden; 的元素被隐藏,但是将继续占据空间;使用 display: none; 将不占据空间
  2. opacity: 0; 属性不会触发重绘,性能较高;visibility: hidden; 改变时会引起重绘,性能较高;display: none; 改变时会引起重排,性能较差。
  3. opacity: 0; 和 visibility: hidden; 会被子元素继承,但设置了 opacity: 0; 元素的子元素不能通过修改数值为1来取消隐藏, 设置了 visibility: hidden; 元素的子元素可以通过修改属性值为 visible 来取消隐藏;display: none; 不会被继承,因为隐藏父元素时,子元素也不会显示
  4. CSS 属性 transition 中支持 opacity 和 visibility,不支持 display