【CSS】透明度 、过渡 、动画 、渐变
- opacity 透明度
- transition 过渡
- animation 动画
- background 渐变 ( 线性渐变 \ 径向渐变 \ 锥形渐变 )
opacity 透明度
设置元素的透明度,
会影响元素及其所有子元素的透明度,值范围:0(完全透明)到1(完全不透明)。但不会影响元素的布局,即使元素变得透明,它仍然会占据其应有的空间(visibility: hidden 占据位置,只是不可见)。若只想影响元素的背景而不影响其内容,可使用其它方法,如:rgba颜色值进行background-color 的透明度设置(取决于浏览器支持)
<style>div{width: 200px;height: 100px;line-height: 100px;font-size: 30px;text-align: center;margin-top: 10px;}div:nth-of-type(1){background-color: #d000ff;/* 设置的是元素的透明度 */opacity: 0.3;}div:nth-of-type(2){/* 设置的是背景颜色的透明度 */background-color: rgba(208,0,255,0.3);}
</style>
<div>文字</div>
<div>文字</div>
效果:

transition 过渡
| 属性值 | 说明 |
|---|---|
transition-property | 设置元素中参与过渡的属性( all \ none \ 指定属性多个用逗号分隔 ) |
transition-duration | 设置元素过渡的持续时间( 秒s \ 毫秒ms ) |
transition-timing-function | 设置过渡的时间函数,控制过渡效果的速度曲线ease默认:缓慢-加速-缓慢linear:匀速ease-in:缓慢开始ease-out:缓慢结束ease-in-out:缓慢开始和结束cubic-bezier(n, n, n, n) :函数,取值 [0,1] |
transition-delay | 设置过渡效果延迟的时间,默认为 0( 使过渡效果在触发后一段时间开始) |
要生效必须要有初始状态和结束状态才能实现过渡效果
<style>/*书写格式:transition-property: width, background, transform;transition-duration: .25s, 1s, 2s;transition-timing-function: linear, ease, ease;transition-delay: 1.9s, 2s, 0s;transition: width .25s linear 1.9s, background 1s 2s, transform 2s;transition: width, background, transform 2s linear 3s;transition: width 2s;*/h1{width: 200px;background-color: rgba(66,85,255,0.6);opacity: 1;transition: all 1s ease-out 1s; /* transition:简写同时设置四个过渡属性 */}h1:hover{width: 100%; /* 宽度变化 */background-color: greenyellow; /* 背景色变化 */opacity: 0.5; /* 透明度变化 */}/*display: none和 display: block之间的切换也会出现过渡效果失效的情况原因: display: none是销毁当前dom节点,再次切换为display: block时会再创建节点,此时css选择器会重新赋予上去。所以不存在渐变动画解决:1.用 opacity(透明度)去替代2.用 visibility: hidden和 visibility: visible进行替换*/h2{/*display: block;*//*visibility: visible;*/opacity: 1;background-color: red;transition: all 2s linear; /* 过渡 */}h2:hover{/*display: none;*//*visibility: hidden;*/opacity: 0;background-color: green;}
</style>
<h1>transition</h1>
<h2>transition</h2>
效果:

animation 动画
| 属性值 | 说明 |
|---|---|
animation-name | 关键帧 ( 动画 ) 名称,可以同时指定多个动画 |
animation-duration | 动画完成一个周期所需的时间,以秒 ( s ) 或毫秒 ( ms ) 为单位 |
animation-timing-function | 速度曲线linear:从头到尾,动画的运行速度相同ease:默认值,开始低速,然后加快,结束前变慢ease-in:低速开始,结束前不断变快ease-out:快速开始,结束前不断变慢ease-in-out:开始和结束时段是慢速,中间部分速度最快cubic-bezier(n,n,n,n):贝塞尔曲线,可以自己设置速度曲线 |
animation-delay | 动画开始前等待的时间,以秒 ( s ) 或毫秒 ( ms ) 为单位 |
animation-iteration-count | 动画播放的次数,正数 或 infinite ( 无限的 ) 则重复运行动画 |
animation-direction | 是否应该轮流反向播放,从头到尾正向播放,或是从尾到头的倒放normal:动画正放,动画一周期结束后重置到开始位置reverse:动画倒放alternate:动画在奇数次正向播放,偶数次反向播放。如果一个动画是持续播放的, 程序刚开始动画为第一次,这一次播放完毕便进行第二次,以此类推alternate-reverse:动画在奇数次反向播放,偶数次正向播放 |
animation-fill-mode | 播放之前和之后如何应用样式 none:默认值,动画不会对元素在动画开始前或结束后样式参数产生任何影响。动画开始前,元素显示CSS非动画状态的样式;动画结束元素回到动画未运行前的初始状态 forwards:动画完成后,元素保持在动画的最后关键帧。就是动画运行到哪里 ,结束后它 就保持在哪里,不会回初始点了backwards:动画开始前,元素显示动画的第一个关键帧的样式。在动画开始前的等待期,它 显示的是第一关键帧both:结合了前两个的效果。动画开始前的等待期它是第一关键帧的样子,动画 结束后保持在最后结束帧的模样,也不会回到原点了 |
animation-play-state | 播放状态,是否正在运行或已暂停在动画过程中我们可以暂停动画,也可以暂停后继续运行,值主要有两个:running \ paused。 当 running 时,动画正常播放,当 paused 时,动画则停在当前帧 |
常伴随着动画帧 @keyframes 一起使用
<style>.box{width: 100px;height: 100px;background: #0022ff;/* 最简 *//*animation: myMove 3s;*//* 最全 *//*animation: myMove2 5s linear 1s 2 alternate both running;*//* 多组 */animation: myMove2 5s linear infinite,Change 5s linear infinite;}/*简单规则 ( from to )*/@keyframes myMove{from{background-color: yellow;}to{background-color: deeppink;margin-left: 300px;margin-top: 200px;}}/*复杂规则 ( 百分比% )*/@keyframes myMove2{0%{background:repeating-radial-gradient(circle closest-side,white, #9cef1d 30%);margin-left: 50px;margin-top: 20px;}40%{background:repeating-radial-gradient(circle closest-corner,white,#9cef1d 30%);margin-left: 300px;margin-top: 100px;}70%{background:repeating-radial-gradient(circle closest-side,white,#9cef1d 30%);margin-left: 100px;margin-top: 200px;}100%{background:repeating-radial-gradient(circle closest-corner,white,#9cef1d 30%);margin-left: 50px;margin-top: 20px;}}@keyframes Change {0%{transform: rotateZ(0deg);}50%{transform: rotateZ(180deg);}100%{transform: rotateZ(360deg);}}
</style>
<div class="box"></div>
效果:

background 渐变 ( 线性渐变 \ 径向渐变 \ 锥形渐变 )
可以使(至少)两个或多个指定的颜色之间显示平稳的过渡,CSS3定义两种类型的渐变:一种是线性渐变, 即向下/向上/向左/向右/对角方向;另一种是径向渐变,及由中心定义
线性渐变
/* 语法 */
background:linear-gradient(to direction, color1, color2,...)
direction 指明线性渐变的方向,默认是从上到下。渐变方向上可以做更多的控制,可以定义一个 deg 角度,而不用预定义方向 ( to bottom 、to top 、 to right 、to left 、to bottom right ) 等等。color 后可以跟设置颜色显示到什么范围 % 或 px ,与颜色用空格隔开
<style>div{width: 150px;height: 150px;display: inline-block;margin: 10px;}.one{background: linear-gradient(#dbff00,#0d6efd);}.two{background: linear-gradient(to right,#dbff00,#0d6efd);}.three{background: linear-gradient(to bottom right,#dbff00,#0d6efd);}.four{background: linear-gradient(80deg,#dbff00 20%,#0d6efd 40%);}.five{background: linear-gradient(-80deg,#dbff00 30%,#0d6efd 80%);}
</style>
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
<div class="four"></div>
<div class="five"></div>
效果:

<style>div{width: 700px;height: 150px;background-image: linear-gradient(to right, red,orange,yellow,green,blue,indigo,violet);}
</style>
<div></div>
效果:

CSS 渐变还支持透明度,也可用于创建渐变效果。如需添加透明度,我们使用 rgba() 函数来定义色标
<style>div{width: 700px;height: 150px;background-image: linear-gradient(to right,rgb(15, 213,0, 0), rgb(173, 255,47, 1));}
</style>
<div></div>
效果:

重复线性渐变
/* 语法 */
background-image: repeating-linear-gradient(方向或角度, color1, color2,...);
<style>div{width: 700px;height: 150px;background-image: repeating-linear-gradient(60deg,white, rgb(217, 47, 255,0.2) 10%);}
</style>
<div></div>
效果:

径向渐变
/* 语法 */
background-image: radial-gradient(shape size at position, start-color, ..., last-color);
必须至少定义两个颜色节点。shape 参数定义形状,默认值是ellipse ( 取值可以是 circle : 圆形, ellipse : 椭圆形 ) 。size 设置扩散的最远距离,即渐变的大小 ( closest-side:半径长度为从圆心到离圆心最近的边。farthest-side:半径长度为从圆心到离圆心最远的边。closest-corner:半径长度为从圆心到离圆心最近的角。farthest-corner:半径长度为从圆心到离圆心最远的角 ) ,除了关键字外也可以是具体的长度 px 或 % 。position 用于指定渐变的圆心位置 ( 水平方向位置,垂直方向位置 ) 默认情况下,渐变的中心是 center ( 表示在中心点 )
<style>div{width: 700px;height: 150px;background-image: radial-gradient(#0022ff, #858585, #6fa915, yellow, black);}
</style>
<div></div>
效果:

不同间距的色标和形状
<style>div{width: 700px;height: 150px;background-image: radial-gradient(circle, #0022ff, #858585 10%, #6fa915 50%,yellow,black);}
</style>
<div></div>
效果:

不同的扩散半径距离关键字
<style>body::after{content: "";display: block;clear: both;}div{width: 300px;height: 150px;margin: 10px 10px;float: left;}/* 不同扩散半径的对比 */div:nth-of-type(1){background-image: radial-gradient(circle closest-side at 70% 55%, red, yellow, black);}div:nth-of-type(2){background-image: radial-gradient(circle farthest-side at 70% 55%, red, yellow, black);}div:nth-of-type(3){background-image: radial-gradient(circle closest-corner at 70% 55%, red, yellow, black);}div:nth-of-type(4){background-image: radial-gradient(circle farthest-corner at 70% 55%, red, yellow, black);}
</style>
<div></div>
<div></div>
<div></div>
<div></div>
效果:

重复径向渐变
/* 语法 */
background-image: repeating-radial-gradient(shape size at position, start-color, ..., last-color);
<style>div{width: 700px;height: 150px;background-image: repeating-radial-gradient(at 20% 60%, #ffffff, #e9defa 10%, #fbfcdb 20%);}
</style>
<div></div>
效果:

锥形渐变
/* 语法 */
background-image: conic-gradient(from [angle] at [position], color-stop1, color-stop2, ...);
函数的结果是一个 gradient 数据类型的对象,也是一种特殊的 image。默认以一个点为中心起始点,沿着圆周变化,可用于创建环形进度条、饼图、彩虹色环等多种图形效果,增强了CSS原生布局的灵活性和表现力。from [ 起始角度 ]:可选参数,用于指定起始角度,默认为0度(即从正上方开始 顺时针渐变 ),可以设置一个角度值,例如 from 45deg 表示从顺时针45度方向开始渐变。at [ 中心点位置 ]:可选参数,用于指定渐变的中心位置。可以使用方位关键词或具体的坐标值,如 at center 或 at left 50% top 50%。渐变断点 color-stop1, color-stop2, …:必需参数,用于定义颜色渐变的具体步骤,每个颜色后面可以跟一个角度值(如 red 90deg 表示在90度位置变为红色)或百分比(表示在整个圆周上的位置)。注意锥形渐变功能在CSS标准的不同版本中有不同程度的支持,因此在实际应用时可能需要配合前缀或查询最新的浏览器支持情况
<style>div{width: 200px;height: 200px;border-radius: 50%;/* 默认从上方开始,从白色渐变至绿色 */background:conic-gradient(white, green);}
</style>
<div></div>
效果:

不同的起始角度和中心点位置
<style>div{width: 200px;height: 200px;border-radius: 50%;/* 在 逆时针45度 的地方顺时针开始,渐变中心位于:水平方向在100px 垂直方向在70% 处 */background-image: conic-gradient(from -45deg at 100px 70%, #fffb00, #d384ff, #49ffe4);}
</style>
<div></div>
效果:

指定颜色断点
<style>div{width: 200px;height: 200px;border-radius: 50%;/* 在指定角度变成指定颜色 */background-image: conic-gradient(#d9ff00 45deg, #ff0000 90deg, #dd00ff 135deg, #2a2dff 270deg);}
</style>
<div></div>
效果:

指定颜色显示区域
<style>div{width: 200px;height: 200px;border-radius: 50%;/* 指定颜色区域,写法 1: *//*background: conic-gradient(blue 0deg 60deg, red 60deg 120deg, green 120deg);*//* 指定颜色区域,写法 2:这样每一个颜色都需要计算角度是比较麻烦的事情,这时我们可以使用渐变断点的一个特性:当后面的渐变断点位置比前面的断点位置小的时候,会自动按照前面较大的断点位置渲染,也就是说我们可以直接简单的设置为 */background: conic-gradient(blue 30%, red 0deg 60%, green 0deg 100%);}
</style>
<div></div>
效果:
)
重复锥形渐变
/* 语法 */
<style></style>
<div></div>
效果:
只有当首尾两颜色位置不在 0% 或 100% 时,重复渐变才生效 ( 占满了就没法重复了 ) 。由于位置处于 100% 的色标有时并不会占满渐变区域,则浏览器会默认使用最后一个色标的颜色铺满渐变区域 ( 未使用重复渐变且扩散距离未铺满渐变区域的情况下 ) 。渐变函数的结果是 gradient 数据类型的对象, 是一种特殊的 image 类型
相关文章:
【CSS】透明度 、过渡 、动画 、渐变
opacity 透明度transition 过渡animation 动画background 渐变 ( 线性渐变 \ 径向渐变 \ 锥形渐变 ) opacity 透明度 设置元素的透明度,会影响元素及其所有子元素的透明度,值范围:0(完全透明)到 1(完全不透…...
尚硅谷vue3+TypeScript笔记大全
1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(n 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月,最…...
New major version of npm available! 8.3.1 -> 10.8.3 报错
问题 npm install 安装新项目时,出现如下升级错误。 npm notice npm notice New major version of npm available! 8.3.1 -> 10.8.3 npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.3 npm notice Run npm install -g npm10.8.3 to upd…...
Python(七)- 文件操作
目录 文件操作 打开文件 读数据 写数据 关闭文件 文件读写实例 文件写 文件读 读数据类型 备份文件 os模块 目录的具体操作 文件操作 在Python中操作文件记录信息的步骤: (1)打开文件,或新建一个文件; o…...
Docker技术深度解析与实践案例
Docker技术深度解析与实践案例 在当今快速迭代的软件开发环境中,如何高效地打包、部署和管理应用成为了开发人员和运维团队面临的重大挑战。Docker,作为一种开源的应用容器引擎,凭借其轻量级、可移植性和高效性,迅速成为解决这些…...
llama_deploy
本文于 240924 翻译整理自: https://docs.llamaindex.ai/en/stable/module_guides/workflow/deployment/ 文章目录 一、关于 🦙`llama_deploy`🤖为什么使用 `llama_deploy`?等等,`llama-agents` 在哪里?二、入门1、安装2、高级部署3、部署核心系统4、部署工作流5、与部…...
平衡二叉搜索树插入的实现
前言 因为二叉搜索树在插入的时候最坏的情况可能会变成一条单一链表,从而使查找或者插入的时候消耗大量的时间。所以为了解决这一情况诞生了平衡二叉搜索树,其作用是为了减少二叉搜索树的整体高度,从而使查找插入删除的效率提高。 一、平衡二…...
ROS理论与实践学习笔记——2 ROS通信机制之通信机制实践
5.1 话题发布 需求描述:编码实现乌龟运动控制,让小乌龟做圆周运动。 实现分析: ①乌龟运动控制实现,关键节点有两个,一个是乌龟运动显示节点 turtlesim_node,另一个是控制节点,二者是订阅发布模…...
CDGA|数据治理:策略与价值的深度融合
在当今这个数据驱动的时代,企业数据治理的重要性日益凸显。数据不仅是企业的核心资产,更是驱动业务决策、优化运营流程、创新产品服务的关键力量。然而,要让数据治理真正发挥价值,企业需要采取一系列策略来确保数据的准确性、完整…...
49. 建模软件绘制3D场景(Blender)
这文章主要给大家科普一些三维模型创建、美术和程序员协作的相关问题。 三维建模软件作用 对于简单的立方体、球体等模型,你可以通过three.js的几何体相关API快速实现,不过复杂的模型,比如一辆轿车、一栋房子、一个仓库,一般需要…...
如何使用 DomCrawler 进行复杂的网页数据抓取?
在互联网时代,数据是宝贵的资源。无论是市场分析、客户洞察还是内容聚合,从网页中抓取数据都是一项关键技能。Symfony 的 DomCrawler 是一个强大的工具,可以帮助开发者从复杂的网页中提取所需的数据。本文将详细介绍如何使用 DomCrawler 进行…...
维修服务品牌小程序渠道客获
维修服务可覆盖家电电器、家具、手机电脑等多个细分类目,本地同城也有着不少目标用户且该行业客户有着一定粘性,比如服务完成递上一张名片/电话留存则有着较高复购率。 线上各行业便捷化程度提升,服务进店/上门都需要快捷完成,包…...
【全新课程】正点原子《基于GD32 ARM32单片机项目实战入门》培训课程上线!
正点原子《基于GD32 ARM32单片机项目实战入门》全新培训课程上线啦!正点原子工程师手把手教你学!彻底解决ARM32单片机项目入门难的问题! 一、课程介绍 本课程专为ARM32单片机的入门学习者设计,涵盖了环境搭建、编程软件使用、模…...
Kafka系列之:安装使用kafka_exporter详细步骤
Kafka系列之:安装使用kafka_exporter详细步骤 一、kafka_exporter二、下载kafka_exporter三、理解Topic Metrics指标四、理解Consumer Groups Metrics指标五、启动kafka_exporter六、查看页面七、systemctl托管服务一、kafka_exporter kafka_exporter源码kafka_exporter下载页…...
Paddlets时间序列集成模型回测实战:MLPRegressor、NHiTSModel与RNNBlockRegressor
好的,我们继续深入理解代码的每个部分。以下是每个主要模块的详细解释: 1. 导入模块和库 import json import os import glob import pandas as pd from tqdm import tqdm from paddlets.datasets import TSDataset from paddlets.transform import StandardScaler from pa…...
【anki】显示 “连接超时,请更换网络后重试” 怎么办
文章目录 前言一、问题描述二、解决方案 前言 在 anki同步 时遇到的问题 一、问题描述 二、解决方案 从电信换为了移动热点,电脑手机都同步成功了...
第一批学习大模型的程序员,已经碾压同事了,薪资差距都甩出一条街了...
前言 随着人工智能技术的突飞猛进,AI大模型已成为引领未来的核心技术。从ChatGPT的横空出世到GPT-4o的震撼发布,AI技术正以前所未有的速度改变着我们的生活和工作方式。 在这场AI革命中,企业对AIGC人才的需求正以指数级增长。据《AIGC就业趋…...
Unity NetCode 客户端连接不上服务器,局域网模式 Failed to connect to server.
报错代码: Failed to connect to server. 报错截图: 解决办法: 服务端:绑定127.0.0.1和端口 客户端:写好对应服务端ip和端口 如何查看服务端所在局域网IP,192.xxx.xxx.xx,就不用教了吧。 注意这个钩,得点下,默认不勾选。 意…...
C++远端开发环境安装(centos7)
使用VMWare安装centos7 启用网卡设备 修改文件/etc/sysconfig/network-scripts/ifcfg-ens33中的ONBOOTyes 重启网络服务 systemctl restart network 配置yum仓库 直接将如下内容覆盖原有的/etc/yum.repos.d/CentOS-Base.repo文件 清理yum缓存 yum clean all 刷新yum yu…...
LaTeX 编辑器-TeXstudio
TeXstudio 是一款开源跨平台 LaTeX 编辑软件,界面与 Texmaker 类似。TeXstudio 为用户提供互动式拼写检查、代码折叠、语法高亮、代码提示和自动完成等特性,功能丰富,界面美观,但软件本身不提供底层功能,需要使用者自行…...
FUTURE POLICE语音模型.NET平台调用实战:Windows桌面语音应用开发
FUTURE POLICE语音模型.NET平台调用实战:Windows桌面语音应用开发 你是不是也遇到过这样的场景?手头有一段重要的会议录音,或者一段外语学习材料,需要快速整理成文字。手动听写不仅耗时耗力,还容易出错。现在…...
英雄联盟智能助手:如何在选人阶段获得不公平优势?终极指南揭秘本地化工具LeagueAkari
英雄联盟智能助手:如何在选人阶段获得不公平优势?终极指南揭秘本地化工具LeagueAkari 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League…...
深入解析Triton Server的Backend插件机制与自定义开发实践
1. Triton Server与Backend插件机制概述 第一次接触Triton Server时,最让我困惑的就是它的Backend机制。简单来说,Triton就像一个万能插座,而各种Backend就是不同标准的插头。比如你用PyTorch训练了个模型,Triton的pytorch_backen…...
窗口效率革命:WindowResizer重构数字空间管理新范式
窗口效率革命:WindowResizer重构数字空间管理新范式 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 问题诊断:被忽视的数字空间效率黑洞 现代办公的隐形枷…...
intv_ai_mk11保姆级教学:输入‘你好’→追问第2点→指定表格输出,完整交互链路演示
intv_ai_mk11保姆级教学:输入你好→追问第2点→指定表格输出,完整交互链路演示 1. 快速了解intv_ai_mk11 intv_ai_mk11是一款基于Llama架构的AI对话助手,拥有7B参数规模,运行在GPU服务器上。它能帮助你完成各种任务,…...
从按键消抖到外部中断:STM32 GPIO输入模式的‘避坑’指南与AFIO的隐藏用法
从按键消抖到外部中断:STM32 GPIO输入模式的‘避坑’指南与AFIO的隐藏用法 在嵌入式开发中,GPIO(通用输入输出)接口是与外部世界交互的第一道门槛。对于STM32开发者来说,GPIO配置看似简单,却暗藏诸多细节陷…...
Wan2.2-I2V-A14B企业级部署案例:单卡24GB显存实现高并发视频API服务
Wan2.2-I2V-A14B企业级部署案例:单卡24GB显存实现高并发视频API服务 1. 企业级视频生成解决方案概述 在数字内容创作领域,视频生成技术正经历革命性变革。Wan2.2-I2V-A14B作为新一代文生视频模型,通过私有化部署方案,为企业提供…...
别再用asyncio硬扛高并发了!无GIL环境下Python原生多线程性能翻倍的6个核心调优参数
第一章:Python无锁GIL环境下的并发模型演进全景Python长期以来受全局解释器锁(GIL)制约,导致多线程无法真正并行执行CPU密集型任务。近年来,随着CPython 3.12正式引入实验性“无GIL构建选项”(--without-py…...
为什么选全屋定制,不买成品柜
1)为什么选全屋定制,不买成品柜? 成品柜尺寸固定,苏州很多户型飘窗、梁位、管道多,放进去丑、浪费空间!我们定制严丝合缝,顶天立地,收纳多 30%,颜值统一,和…...
DeerFlow效果展示:自动生成的深度研究报告与播客内容惊艳分享
DeerFlow效果展示:自动生成的深度研究报告与播客内容惊艳分享 1. DeerFlow核心能力概览 DeerFlow作为一款深度研究智能助手,整合了语言模型、网络搜索和代码执行能力,能够自动完成从信息收集到内容生成的全流程工作。其核心功能亮点包括&am…...
