CSS实现透明度效果的两种方法—— opacity 和 rgba()

news2024/11/24 4:11:23

在实际开发过程中,为了给用户呈现一些效果,我们需要控制元素的透明度。CSS 提供了 opacity 属性和 rgba() 函数给我们控制透明度,接下来通过一个例子来感受一下两种方法的区别。

<style>
  .transparentBox {
		display: inline-block;
		width: 100px;
		height: 100px;
		margin: 20px;
		color: #FFF;
		text-align: center;
		background-color: rgb(250, 179, 1);
		position: relative;
  }
  .transparentBox > div {
		width: 50px;
		height: 50px;
		line-height: 50px;
		background-color: rgb(210, 105, 30);
		position: absolute;
		top: 50%;
		left: 50%;
		margin-top: -25px;
		margin-left: -25px;
    }
</style>
<div class="transparentBox">
	<div>111</div>
</div>

在这里插入图片描述

opacity 属性

opacity 属性可以设置一个元素的不透明度。语法如下。

opacity: alpha;
alpha 取值范围为 0~1,值越小越透明( 0 表示完全透明,1 表示完全不透明 ),任何一个溢出这个取值区间的值都会被解析为在取值范围内最靠近它的值

IE8 或者更早版本的 IE 浏览器不支持 opacity 属性,若想要在这些浏览器中实现透明效果可以使用 filter 属性,语法格式如下:

filter: alpha(opacity=number);
number 的取值范围为 0~100,值越小则越透明( 0 表示完全透明,100 表示完全不透明 )

为了让所有浏览器都可以实现透明效果,我们可以同时定义 opacity 和 filter 两个属性,如下

div {
	opacity: 0.5;
	filter: alpha(opacity=50);
}

下面给最外层盒子设置 opacity 属性,看看有什么效果。

.transparentBox {
	opacity: 0.5;
}

在这里插入图片描述
可以看到中间盒子的透明度也被改变了,这也证实了 opacity 属性会影响子元素。此时子元素没有设置 opacity 属性,直接继承了父元素的,所以也是 0.5。如果给子元素也设置 opacity 属性会怎么样?

.transparentBox > div {
	opacity: 1;	/* 依次设为 1、 0.5、 0,观察效果 */
}

子元素 opacity: 1 的效果跟上面是一样的,但是设置比 1 小的值时,子元素有了不同的表现。

在这里插入图片描述
由上可知,opacity 属性具有继承性,当它被应用于某个元素上时,这个元素包括它的内容都被当成一个整体看待。一个元素和它的子元素(包括文本、边框、背景色等)都会具有相同的透明度,不过对于它的子元素还有以下两个要点。

  1. 子元素会直接继承父元素的透明度。子元素不设置 opacity 时,会受到父元素 opacity 的影响,拥有与父元素相同的透明度。
  2. 子元素的透明度是基于父元素的透明度计算的​。子元素 opacity 设为 1 时,父元素的影响依然在,所以在上面的例子中,没有任何变化;设为 0.5 时,相当于在父元素 0.5 的基础上再叠加了一层 0.5 的透明度,看上去更不透明了。

注意:opacity: 0 的元素在页面上肉眼不可见,像是“隐身”了,但 DOM 结构依然存在,所以在页面上仍然占据空间,因此在元素上绑定的事件也能被正常触发。

有时候我们想让子元素摆脱父元素的控制,给父元素单独设置透明度该怎么做?CSS 函数 rgba() 支持这样的做法。

rgba() 函数

rgba() 函数根据颜色的红色、绿色和蓝色成分来表达颜色,可选的 alpha 参数设置颜色的透明度。语法如下。

rgba(r, g, b, alpha)
R、G、B
每个都是从 0 到 255 之间的整数,或从 0% 到 100% 之间的 百分比,或者为关键字 none,分别代表红色、绿色和蓝色的通道。
A 可选
alpha 值(可以是百分比或0~1之间的数字)或者关键字 none,数字 1 对应 100%(完全不透明)。

下面给最外层盒子设置一个带透明度的背景色

.transparentBox {
	background-color: rgba(250, 179, 1, 0.5);
}

在这里插入图片描述
可以看到只是最外层盒子的背景颜色改变了,里面的盒子不受影响。有了 rgba() 我们可以更精确地控制颜色和它的透明度,而且不会影响子元素,不像 opacity 属性那样有继承性,对整体都有影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

telnet不是内部或外部命令

telnet不是内部或外部命令-telnet测试端口是否开放 在windows系统上开启Telnet服务 win8以上系统&#xff1a;"开始"→"控制器面板"→"程序和功能"→ 左侧"启动或关闭windows功能"→ 在"Windows功能"界面勾选Telnet服务器和…

java RMI 技术介绍和实践

在项目上发现了使用rmi技术&#xff0c;充电一波 RMI 概述 RMI&#xff08;Remote Method Invocation&#xff09;是一种 Java 编程语言中的远程过程调用&#xff08;RPC&#xff09;协议&#xff0c;用于在不同的Java虚拟机&#xff08;JVM&#xff09;之间进行通信和交互。它…

基于非精确线搜索算法三准则实现步长因子的求解

0、前言 朋友请我帮他做一个他们老师留的课堂作业&#xff0c;就自学了一下&#xff0c;我给他做了A准则和G准则的&#xff0c;W准则的留给他自己改了&#xff0c;也没有多难就是换一个判断条件就行了。 一、问题描述 二、要求 三、代码 3.1A准则加回退法 %帮别人做的小作业…

『MySQL快速上手』-⑤-数据类型

文章目录 1.数据类型有哪些2.数值类型2.1 tinyint 类型2.2 bit 类型2.3 小数类型2.3.1 float2.3.2 decimal 3.字符串类型3.1 char3.2 varchar3.2 char 和 varchar 比较 4.日期和时间类型5.enum和set 1.数据类型有哪些 MySQL支持多种数据类型&#xff0c;这些数据类型可用于定义…

第二证券:“闻”A股:注册制走深走实是活跃市场制度保障

不久前举办的中心金融工作会议明确要求“推动股票发行注册制走深走实”&#xff0c;无疑为本钱商场活泼进一步夯实制度保证。 上市公司是本钱商场的基石&#xff0c;其质量是决议本钱商场长期健康展开的重要因素之一。作为牵一发而动全身的重要革新&#xff0c;注册制的实施逐…

Pycharm加载项目时异常,看不到自己的项目文件

最近看到一个朋友问&#xff0c;他把项目导入pycharm为什么项目里的包不在项目里显示&#xff0c;只在projects file里显示&#xff1f;问题截图如下&#xff1a; Project里看不到自己的项目文件 只能在Project Files里看到自己的项目文件 问题解答 我也是偶然发现的这个方案…

CV计算机视觉每日开源代码Paper with code速览-2023.11.6

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【点云3D目标检测】&#xff08;NeurIPS2023&#xff09;…

NR SRS carrier switching

这篇看下SRS carrier switching的内容,这个feature 最早是LTE上提出的,在NR R15就引入了。个人没见过支持这个feature的UE,不过还是简单看下。 下面内容参照的是R17版本协议,顺序是背景->相关IE的配置结构及含义->DCI format 2_3->38.214中有关SRS carrier swtich…

代码随想录算法训练营第四十六天丨 动态规划part09

198.打家劫舍 思路 如果刚接触这样的题目&#xff0c;会有点困惑&#xff0c;当前的状态我是偷还是不偷呢&#xff1f; 仔细一想&#xff0c;当前房屋偷与不偷取决于 前一个房屋和前两个房屋是否被偷了。 所以这里就更感觉到&#xff0c;当前状态和前面状态会有一种依赖关系…

使用数据分析,识别设备异常

设备健康监测系统在工业领域中扮演着至关重要的角色&#xff0c;它能够帮助企业及时发现设备异常&#xff0c;预防故障&#xff0c;提高设备使用寿命和生产效率。而异常诊断技术则是设备健康监测系统中的核心部分&#xff0c;能够实现对设备异常情况的准确判断。根据设备状态数…

05预测识别-依托YOLO V8进行训练模型的识别——对视频中的目标进行跟踪统计

上文中详细介绍了如何对视频进行抽帧,并对帧的图像进行目标识别。但在日常工作中,我们也会遇到需要对目标进行跟踪统计的情况,比如我们需要连续统计某一类目标有多少个的时候,如果单纯从帧中抽取图像的话,系统将无法判断是否为同一目标,从而造成目标数量统计的重复,导致…

研发效能认证学员作品:持续集成与持续部署:软件高质量的关键丨IDCF

作者&#xff1a;李明君&#xff08;现就职某金融机构&#xff09; 研发效能&#xff08;DevOps&#xff09;工程师&#xff08;中级&#xff09;认证 在当今数字化时代&#xff0c;软件开发已经成为几乎所有行业的核心。随着市场的快速变化和客户需求的不断演进&#xff0c;软…

三国志14信息查询小程序(历史武将信息一览)制作更新过程06-复现小程序

0&#xff0c;所需文件 所需全部文件下载 文件总览&#xff1a; 代码&#xff1a; 数据库&#xff1a; 1&#xff0c;前期准备 假定你已经看过前面的文章&#xff0c;并完成了下列准备&#xff1a; &#xff08;1&#xff09;一台有公网IP的云服务器&#xff0c;服务器上…

day63--单调栈3

第一题&#xff1a;柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 直接单调栈&#xff1a; 接雨水利用的是3个柱子形成一个凹槽…

Power Apps-使用用户信息

插入一个文本组件&#xff0c;点击该组件&#xff0c;点击右侧边栏中的文本&#xff0c;在上方函数中写入如下内容就可以获取到用户信息了 "Hello!"&User().FullName//字符串拼接

华为交换机端口 access、trunk和hybrid收发数据规则

文章目录 1. 三个端口类型处理数据帧的汇总表2. access 端口3. trunk端口4. Hybrid 端口&#xff08;交换机的默认端口类型&#xff09;常用命令 1. 三个端口类型处理数据帧的汇总表 端口类型收到不带VLAN标签的帧的处理规则收到带VLAN标签的帧的处理规则发送帧时的处理规则用…

利用AI快速跨过新手区:用DevChat编写Python程序-CSV导入TDengine

还在用百度搜索编程吗&#xff1f; 直接上 AI&#xff0c;帮助小白快速跨过新手区。 以下用一个物联网最常见的场景做示例演示如何利用 AI 快速编程。 ChatGPT4 是目前最火的 AI 了&#xff0c;但是国内却用不了。不过现在新出的 DevChat 可以让大家尝鲜一番。 以下介绍来自B…

rabbitmq入门学习

写在前面 本文看下rabbit mq的基础概念以及使用。 1&#xff1a;简单介绍 为了不同进程间通信的解耦&#xff0c;出现了消息队列&#xff0c;为了规范消息队列的具体实现&#xff0c;Java制定了jms规范&#xff0c;这是一套基于接口的规范&#xff0c;因此是绑定语言的&…

Xcode15更新内容

参考博客&#xff1a; 【WWDC 2023】Xcode 15 更新内容 文章目录 1. xcode15起&#xff0c;项目内创建的图片可以使用点语法访问2.2. UIKit项目也可以使用预览功能3. Xcode新增标签功能4.Log分类 1. xcode15起&#xff0c;项目内创建的图片可以使用点语法访问 2.2. UIKit项目也…

台达PLC和触摸屏之间无线MODBUS通讯

今天&#xff0c;我们来一起学下下台达PLC与触摸屏之间无线通信的实现方法。其中触摸屏作为主站&#xff0c;台达PLC作为从站&#xff0c;并采用日系PLC专用无线通讯终端DTD435MC&#xff0c;作为实现无线通讯的硬件设备。 台达PLC和触摸屏通讯关键是对于通讯参数的设置。 触…