CSS中设置透明度的2个属性:opacity,RGBA以及它们的区别

news2024/10/6 10:42:49

你好,我是云桃桃。

一个希望帮助更多朋友快速入门 WEB 前端的程序媛。

云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集

287篇原创内容-更多前端系列内容可以go公众.h:云桃桃

后台回复“前端工具”可获取开发工具,持续更新中

后台回复“前端基础题”可得到前端基础100题汇总,持续更新中

后台回复“前端电子书”可获取20+本精选电子书

前言

透明度在网页设计中扮演着重要的角色,透明度的合理运用可以提升网页设计的美感和功能性,增强用户体验,突出重点内容,同时也为设计师提供了更多的创作空间和可能性。

那我们一起来看看吧。

2 个透明度属性

可以表示透明度的,有 2 个属性,分别是opacityrgba

一、opacity 属性

用于设置元素的不透明度,取值范围为 0.0(完全透明)到 1.0(完全不透明)。在写小数值时,一般来说,保留 1~2 位小数即可。

需要注意的是:

  • 该属性可以继承,即子元素会继承父元素的透明度。所以,下面案例中文字的颜色也带上透明度了。

  • 该属性只对块级元素有效,对行内元素无效。

那,来看 3 个小案例吧。

1、透明度的 div

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Opacity Example</title>
    <style>
      /* 清除浮动样式 */
      .clearfix::after {
        content: '';
        display: table;
        clear: both;
      }
      .container {
        margin-top: 50px;
      }
      .container div {
        float: left;
        width: 200px;
        height: 200px;
        font-size: 26px;
        text-align: center;
        line-height: 200px;
        margin-right: 30px;
        color: #333;
        font-weight: bold;
      }
      .container div {
        background-color: #f00;
      }
      .container .div1 {
        opacity: 1;
      }
      .container .div2 {
        opacity: 0.7;
      }
      .container .div3 {
        opacity: 0.3;
      }
      .container .div4 {
        opacity: 0.1;
      }
    </style>
  </head>
  <body>
    <h1>opacity属性的透明度</h1>
    <div class="container clearfix">
      <div class="div1">opacity:1</div>
      <div class="div2">opacity:0.7</div>
      <div class="div3">opacity:0.3</div>
      <div class="div4">opacity:0.1</div>
    </div>
  </body>
</html>

效果如下,其内部的文字也自动带上透明度了:

图片

2、透明度的图像

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Opacity Example</title>
    <style>
      /* 清除浮动样式 */
      .clearfix::after {
        content: '';
        display: table;
        clear: both;
      }
      img {
        display: block;
        width: 100%;
      }
      .container {
        margin-top: 50px;
      }
      .container div {
        float: left;
        width: 200px;
        font-size: 16px;
        text-align: center;
        margin-right: 30px;
        color: #333;
        font-weight: bold;
      }
      .container div {
        border: 1px solid #333;
      }
      .container .img1 {
        opacity: 1;
      }
      .container .img2 {
        opacity: 0.7;
      }
      .container .img3 {
        opacity: 0.3;
      }
      .container .img4 {
        opacity: 0.1;
      }
    </style>
  </head>
  <body>
    <div class="container clearfix">
      <div class="div1">
        <img class="img1" src="img/tree.png" alt="" />
        <p>opacity:1</p>
      </div>
      <div class="div2">
        <img class="img2" src="img/tree.png" alt="" />
        <p>opacity:0.7</p>
      </div>
      <div class="div3">
        <img class="img3" src="img/tree.png" alt="" />
        <p>opacity:0.3</p>
      </div>
      <div class="div4">
        <img class="img4" src="img/tree.png" alt="" />
        <p>opacity:0.1</p>
      </div>
    </div>
  </body>
</html>

效果如下:

图片

3、带交互的透明度图像

这种交互也比较常见的,比如,jd 的这个,把鼠标放在图片放上去之后,是有一点点不透明度的。

图片

怎么做呢?就是配合 hover。来看代码。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Opacity Example</title>
    <style>
     /* 清除浮动 */
      .clearfix::after {
        content: '';
        display: table;
        clear: both;
      }
      img {
        display: block;
        width: 100%;
      }
      .container {
        margin-top: 50px;
      }
      .container div {
        float: left;
        width: 200px;
        margin-right: 30px;
      }
      .container img {
        transition: all 0.3s; /* 添加过渡效果 */
      }
      .container div {
        border: 1px solid #333;
      }
      .container div p {
        margin: 10px 10px;
        line-height: 24px;
        height: 48px;
        color: #333;
        font-size: 14px;
        /* 设置超出2行显示省略号 */
        word-break: break-all;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
      }
      .container div:hover img {
        opacity: 0.5;
      }
    </style>
  </head>
  <body>
    <div class="container clearfix">
      <div>
        <img src="img/tree.png" alt="" />
        <p>摩天手(Mofii) sweet无线复古朋克键鼠套装 办公键鼠套装 鼠标 电脑键盘 笔记本键盘 白绿色</p>
      </div>
      <div>
        <img src="img/tree.png" alt="" />
        <p>摩天手(Mofii) sweet无线复古朋克键鼠套装 办公键鼠套装 鼠标 电脑键盘 笔记本键盘 白绿色</p>
      </div>
      <div>
        <img src="img/tree.png" alt="" />
        <p>摩天手(Mofii) sweet无线复古朋克键鼠套装 办公键鼠套装 鼠标 电脑键盘 笔记本键盘 白绿色</p>
      </div>
      <div>
        <img src="img/tree.png" alt="" />
        <p>摩天手(Mofii) sweet无线复古朋克键鼠套装 办公键鼠套装 鼠标 电脑键盘 笔记本键盘 白绿色</p>
      </div>
    </div>
  </body>
</html>

效果如下。

图片

二、rgba 属性

第一个 opacity属性会同时改变元素及其子级内容的透明度,但有时候我们只需要改变作用元素的透明度,那 rgba 属性就派上用场了。

rgba 是 CSS 中用来表示颜色的一种方式,它由红色(R)、绿色(G)、蓝色(B)和透明度(A)四个通道组成。其中,R、G、B 通道表示颜色的三原色分量,取值范围为 0 到 255,

A 通道表示透明度,取值范围为 0 到 1,0 表示完全透明,1 表示完全不透明,在写小数值时,应该保留合理的小数位数,一般来说,保留 1~2 位小数即可。

rgba 可以单独控制元素的背景颜色或文本颜色的透明度,而不影响其内容的透明度。这对于需要让元素半透明而保持内容不变的情况非常有用,例如半透明的背景色或文本颜色。

ok,我们通过一个例子来对比一下 opacity 和 rgba。代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Opacity Example</title>
    <style>
      /* 清除浮动样式 */
      .clearfix::after {
        content: '';
        display: table;
        clear: both;
      }
      .mb-50 {
        margin-bottom: 50px;
      }
      .container div {
        float: left;
        width: 200px;
        height: 200px;
        font-size: 26px;
        text-align: center;
        line-height: 200px;
        margin-right: 30px;
        color: #333;
        font-weight: bold;
      }
      .container1 div {
        background-color: #f00;
      }
      .container1 .div1 {
        opacity: 1;
      }
      .container1 .div2 {
        opacity: 0.7;
      }
      .container1 .div3 {
        opacity: 0.3;
      }
      .container1 .div4 {
        opacity: 0.1;
      }
      .container2 .div1 {
        background: rgba(255, 0, 0, 1);
      }
      .container2 .div2 {
        background: rgba(255, 0, 0, 0.7);
      }
      .container2 .div3 {
        background: rgba(255, 0, 0, 0.3);
      }
      .container2 .div4 {
        background: rgba(255, 0, 0, 0.1);
      }
    </style>
  </head>
  <body>
    <div class="mb-50">
      <h1>opacity属性的透明度</h1>
      <div class="container container1 clearfix">
        <div class="div1">opacity:1</div>
        <div class="div2">opacity:0.7</div>
        <div class="div3">opacity:0.3</div>
        <div class="div4">opacity:0.1</div>
      </div>
    </div>
    <div>
      <h1>rgba属性的透明度</h1>
      <div class="container container2 clearfix">
        <div class="div1">rgba:1</div>
        <div class="div2">rgba:0.7</div>
        <div class="div3">rgba:0.3</div>
        <div class="div4">rgba:0.1</div>
      </div>
    </div>
  </body>
</html>

效果如下:

图片

是不是一目了然了,rgba并不影响子级的透明度。

OK,本文完。

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

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

相关文章

关于SSL加密,您应该知道什么?

SSL加密&#xff0c;全称为安全套接字层加密&#xff0c;是一种网络安全协议&#xff0c;主要用于在网络通信中提供隐私和数据完整性。它通过在客户端和服务器之间建立一个加密的通道&#xff0c;确保数据在传输过程中不被窃取或篡改。随着互联网的普及和电子商务的快速发展&am…

多种方法求1+12+123+1234……

有网友出了一道题&#xff1a; 从键盘输入一个小于10的正整数n&#xff0c;计算1121231234……&#xff0c;即前n项之和。 第一眼看到题目&#xff0c;直觉告诉我必须使用嵌套的两个for循环&#xff0c;里面的循环生成每一项&#xff0c;外面的循环求和。错误的方向和思路让我…

[C++ QT项目实战]----C++ QT系统实现多线程通信

前言 在C QT中&#xff0c;多线程通信原理主要涉及到信号与槽机制和事件循环机制。 1、信号与槽机制&#xff1a; 在QT中&#xff0c;信号与槽是一种用于对象间通信的机制。对象可以通过发送信号来通知其他对象&#xff0c;其他对象通过连接槽来接收信号并进行相应的处…

与 Apollo 共创生态:Apollo 七周年大会给带来的震撼

文章目录 一、七年蛰伏&#xff0c;Apollo 迎来“智变”时刻二、Apollo 企业生态计划与开放平台2.1 Apollo X 企业自动驾驶解决方案2.2 Apollo 开放平台携手伙伴共创生态 三、个人感悟 一、七年蛰伏&#xff0c;Apollo 迎来“智变”时刻 让我们把时间倒回到 2013 年&#xff0…

OpenHarmony语言基础类库【@ohos.util.LightWeightMap (非线性容器LightWeightMap)】

LightWeightMap可用于存储具有关联关系的key-value键值对集合&#xff0c;存储元素中key值唯一&#xff0c;每个key对应一个value。 LightWeightMap依据泛型定义&#xff0c;采用轻量级结构&#xff0c;初始默认容量大小为8&#xff0c;每次扩容大小为原始容量的两倍。 集合中…

C++中的queue(容器适配器)

目录 一、成员函数 一、构造函数 二、入栈 push 三、出栈 pop 四、判空 empty 五、队列大小 size 六、取队头元素 front 七、取队尾元素 back 八、入栈 emplace 九、交换函数 swap 二、非成员函数重载 一、关系运算符重载 二、交换函数 swap C中的queue不再是容…

pytest-xdist:远程多主机 - 分布式运行自动化测试

简介&#xff1a;pytest-xdist插件使用新的测试执行模式扩展了pytest&#xff0c;最常用的是在多个CPU之间分发测试以加快测试执行&#xff0c;即 pytest -n auto同时也是一个非常优秀的分布式测试插件&#xff0c;分别支持ssh和socket两种方式实现master和worker的远程通讯。…

Java8 Stream常见用法

Stream流的常见用法&#xff1a; 1.利用stream流特性把数组转list集合 //定义一个数组Integer[] array {5,2,1,6,4,3};//通过stream特性把数组转list集合List<Integer> list Arrays.stream(array).collect(Collectors.toList());//打印结果System.out.println(list);…

Ubuntu16.04搭建webrtc服务器

本人查阅无数资料,历时3周搭建成功 一、服务器组成 AppRTC 房间+Web服务器 https://github.com/webrtc/apprtcCollider 信令服务器,在AppRTC源码里CoTurn coturn打洞+中继服务器 Nginx 服务器,用于Web访问代理和Websocket代理。AppRTC 房间+Web服务器使用python+js语言 App…

两大成果发布!“大规模量子云算力集群”和高性能芯片展示中国科技潜力

在当前的科技领域&#xff0c;量子计算的进步正日益引起全球的关注。中国在这一领域的进展尤为显著&#xff0c;今天&#xff0c;北京量子信息科学研究院&#xff08;以下简称北京量子院&#xff09;和中国科学院量子信息与量子科技创新研究院&#xff08;以下简称量子创新院&a…

2024年度延安市农业农村领域科技创新研发平台申报类别程序、相关要求

一、征集类别 此次征集类别包括市级农业科技园区、星创天地、县域科技创新试验示范站、科技示范镇、乡村振兴科技示范村。 二、申报程序 1.农业科技园区由乡(镇)人民政府牵头申报,经县(市、区)科技管理部门审核后向市科技局推荐报送。(申请模板见附件1)。 2.县域科技创新试…

Unreal Engine子类化系统UButton

UE系统Button点击事件无法传递参数&#xff0c;通过子类化系统Button添加自定义参数扩展实现Button点击事件参数传递点击C类文件夹&#xff0c;在右边的区域点击鼠标右键&#xff0c;在弹出的菜单中选择“新建C类”在弹出的菜单中选中“显示所有类”&#xff0c;选择Button作为…

DSP开发实战教程--EPWM模块的影子寄存器详细讲解原理和代码实例

EPWM模块影子寄存器的原理 在TI&#xff08;Texas Instruments&#xff09;的DSP28335中&#xff0c;EPWM&#xff08;Enhanced Pulse Width Modulator&#xff09;模块提供了高精度、高灵活性的PWM信号生成功能。为了能在不影响当前PWM波形输出的情况下预装载新的PWM参数&…

5.Labview簇、变体与类(下) -- 项目与Labview类的使用

本文介绍Labview类的使用&#xff0c;在Labview中&#xff0c;何为类&#xff1f;应该如何理解&#xff1f;具体有什么应用场景&#xff1f; 本文基于Labview软件&#xff0c;讲解了类函数的使用方法和场景&#xff0c;从理论上讲解其数据流的底层概念&#xff0c;从实践上建立…

机器人前馈控制MATLAB实现

在机器人控制中&#xff0c;前馈控制是一种常用的方法&#xff0c;用于补偿系统中的已知动态。前馈控制通常与反馈控制结合使用&#xff0c;以提高系统的跟踪性能和响应速度。在MATLAB中实现机器人前馈控制涉及几个步骤&#xff0c;包括系统建模、设计前馈控制器、实现控制算法…

Docker 入门篇(二)-- Linux 环境离线安装

引言 docker 系列文章&#xff1a; Docker 入门篇&#xff08;一&#xff09;-- 简介与安装教程&#xff08;Windows和Linux&#xff09; 一、安装环境准备 centos &#xff1a;CentOS Linux release 7.6.1810 (Core)docker 版本&#xff1a;docker-26.1.0.tgz 官网下载地址…

【算法基础实验】图论-基于DFS的连通性检测

基于DFS的连通性检测 理论基础 在图论中&#xff0c;连通分量是无向图的一个重要概念&#xff0c;特别是在处理图的结构和解析图的组成时。连通分组件表示图中的一个子图&#xff0c;在这个子图中任意两个顶点都是连通的&#xff0c;即存在一条路径可以从一个顶点到达另一个顶…

理解归并排序的两种方法(超详细)

目录 前言 一.方法一&#xff1a;归并排序 1.1 归并思路 1.1.1 递归(分解) 1.1.2 区间(排序) 1.1.3 合并拷贝回原数组(合并) 二.归并排序过程 2.1 递归(分解)图解 2.2 归并有序区间(排序)图解 2.2.1 单独一趟排序 2.2.2 有序区间递归排序 2.2.3 数组拷贝(合并) 2.3 归并全部代码…

开箱机选型攻略:如何挑选适合你的自动化设备?

在如今快节奏的生产环境中&#xff0c;自动化设备的运用已成为企业提升效率、降低成本的关键。开箱机作为自动化生产线上的重要一环&#xff0c;其选型对于企业来说至关重要。星派将为您提供一份开箱机选型攻略&#xff0c;帮助您挑选出最适合自己的自动化设备。 一、了解开箱…

从 Apache Doris 到 SelectDB Cloud:云原生架构下的弹性能力揭秘

随着云时代的到来&#xff0c;越来越多企业开始在公有云、私有云乃至 K8s 容器平台构建实时数据平台。云计算基础设施的革新&#xff0c;促使着数据仓库朝着云原生的方向发展。而用户日益复杂的业务负载和降本增效的需求&#xff0c;对于系统资源的精细化管理和成本效益等方面提…