CSS3简单运用过渡元素(transition)

CSS3过渡

概念:在CSS3中,我们可以使用transition属性将元素的某一个属性从"一个属性值"在指定的时间内平滑地过渡到"另一个属性值",从而实现动画效果。

CSS3变形(transform)呈现的仅仅是一个结果,而CSS过渡(transition)呈现的是一个过程。这个所谓的过程,通俗来说就是一种动画变化过程,如渐渐显示,渐渐隐藏,动画快慢等

语法:

css 复制代码
transition:过渡属性 过渡时间 过渡方式 延迟时间;

实例:指定单个属性

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>过渡</title>
		<style>
			*{
				padding:0;
				margin:0;
			}
			div{
				display:inline-block;
				padding:5px 10px;
				margin:20px;
				text-align:center;
				border-radius:20px;
				background-color:rgba(138,199,83,0.6);
				cursor:pointer;
				transition:background-color 0.3s linear 0s;
				
			}
			.a:hover{
				background-color:rgba(144,83,199,0.4);
				
			}
			
		</style>
	</head>
	<body>
		<div class="a">按钮</div>
	</body>
</html>

运行结果

实例:指定多个属性

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
		*{
			padding:0;
			margin:0;
		}
		div{
			width:50px;
			display:inline-block;
			padding:5px 10px;
			margin:20px;
			text-align:center;
			background-color:rgba(138,199,83,0.6);
			cursor:pointer;
			transition:background-color 1s linear 0s,color 0.3s ease 0s,border-radius 0.5s linear 0s;
			
		}
		.a:hover{
			color:white;
			background-color:rgba(144,83,199,0.4);
			border-radius:20px;
		}
		</style>
	</head>
	<body>
			<div class="a">按钮</div>
	</body>
</html>

运行结果

实例:指定全部属性

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>过渡</title>
		<style>
			*{
				padding:0;
				margin:0;
			}
			div{
				width:50px;
				display:inline-block;
				padding:5px 10px;
				margin:20px;
				text-align:center;
				background-color:rgba(138,199,83,0.6);
				cursor:pointer;
				transition:all 0.3s linear 0s;
				
			}
			.a:hover{
				background-color:rgba(144,83,199,0.4);
				width:100px;
				border-radius:20px;
				
			}
			
		</style>
	</head>
	<body>
		<div class="a">按钮</div>
	</body>
</html>

运行结果

说明:凡是涉及CSS3过渡,我们都是结合:hover伪类来实现过渡效果的

transition是一个复合属性,主要包括4个子属性。

属性 说明
transition-property 对元素的哪一个属性进行操作
transition-duration 过渡的持续时间
transition-timing-function 过渡的速率变化方式
transition-delay 过渡的延迟时间(可选参数)

在"实例:指定单个属性"中,属性值

css 复制代码
/*transition复合属性*/
transition:background-color 0.3s linear 0s;

/*transition子属性*/
transition-property:background-color;
transition-duration:0.3s;
transition-timing-function:linear;
transition-delay:0s

这两者代码是等价的

过渡属性:transition-property

概念:在CSS3中,可以使用transition-property属性定义过渡效果操作的是哪一个属性.

当指定的CSS属性的值发生改变时,过渡效果才开始

语法:

css 复制代码
transition:property:none | all | property;

属性值

属性值 说明
none 没有属性应用过渡效果
all 默认值,所有属性都应用过渡效果
property 应用过渡效果的属性名称列表,多个属性间以逗号分隔

过渡时间:transition-duration

概念:在CSS3中,transition-duration属性用于指定过渡效果持续的时间

语法:

css 复制代码
transition-duration:time;

属性值

属性值 说明
time 完成过渡效果所需要的时间(以秒或毫秒记)。默认值为0,表示不出现过渡动画。可以指定多个时长,每个时长会被应用到由transition-property指定的对应属性上。如果指定的时长个数小于属性个数,那么时长列表会重复。如果时长列表更长,那么该列表会被裁剪。两种情况下,属性列表都保持不变

过渡方式:transition-timing-function

概念:在CSS3中,transition-timing-function属性用于指定过渡效果执行时速度变化的时间曲线

语法

css 复制代码
transition-timing-function:linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n);

属性值

属性值 说明 速率
linear 规定以相同速度开始至结束的过渡效果,即"匀速"
ease 默认值,规定慢速开始,变快之后慢速结束的过渡效果
ease-in 规定速度越来越快的过渡效果
ease-out 规定速度越来越慢的过渡效果
ease-in-out 规定以慢速开始和结束的过渡效果
cubic-bezier(n.n,n,n) 在cubic-bezier函数中自定义值,参数是0~1的数值

延迟时间:transition-delay

概念:在CSS3中,transition-delay属性用于指定执行过渡效果之前需要等待的时间

语法:

css 复制代码
transition-delay:time;

属性值

属性值 说明
time 定义过渡效果属性执行之前所需要等待的时间(以秒或毫秒计)。该属性值可以为正整数、负整数或0。默认值为0,即不延迟。当取值为正整数时,过渡效果会延迟触发。当取值为负整数时,过渡效果会从该时间点开始,之前的效果会被截断。

实例:导航下拉列表

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>导航菜单</title>
		<style>
			*{
				padding:0;
				margin:0;
			}
			a{
				text-decoration:none;
			}
			.nav{
				width:150px;
				height:50px;
				background-color:rgb(83,199,86);
				margin:20px auto;
				line-height:50px;
				text-align:center;
			}
			.list{
				list-style: none;
				height:0;
				overflow:hidden;
				/* 指定应用过渡效果的属性为height */
				transition-property:height;
				/* 指定过渡效果持续时间为1s */
				transition-duration:1s;
				/* 指定过渡效果速度变化 */
				transition-timing-function:linear;
				/* 指定过渡效果延迟执行 */
				transition-delay:0s; 
			}
			.list li{
				background-color:lightblue;
				border-bottom:1px solid red;
				list-style:none;
			}
			.nav:hover .list{
				/* 当鼠标移入导航菜单盒子时,下拉列表的高度发生变化 */
				height:240px;
			}
		</style>
	</head>
	<body>
		<div class='nav'>
			<a href="">中国新四大发明</a>
			<ul class="list">
				<li><a href="">高速铁路</a></li>
				<li><a href="">扫码支付</a></li>
				<li><a href="">共享单车</a></li>
				<li><a href="">网络购物</a></li>
			</ul>
		</div>
	</body>
</html>

运行结果

相关推荐
崔庆才丨静觅10 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606111 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了11 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅11 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅11 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅12 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment12 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅12 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊12 小时前
jwt介绍
前端
爱敲代码的小鱼12 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax