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>

运行结果

相关推荐
2501_915918411 小时前
Web 前端可视化开发工具对比 低代码平台、可视化搭建工具、前端可视化编辑器与在线可视化开发环境的实战分析
前端·低代码·ios·小程序·uni-app·编辑器·iphone
程序员的世界你不懂2 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
索迪迈科技2 小时前
网络请求库——Axios库深度解析
前端·网络·vue.js·北京百思可瑞教育·百思可瑞教育
gnip2 小时前
JavaScript二叉树相关概念
前端
rannn_1113 小时前
【Javaweb学习|实训总结|Week1】html基础,CSS(选择器、常用样式、盒子模型、弹性盒布局、CSS定位、动画),js(基本类型、运算符典例)
css·笔记·学习·html
一朵梨花压海棠go3 小时前
html+js实现表格本地筛选
开发语言·javascript·html·ecmascript
attitude.x3 小时前
PyTorch 动态图的灵活性与实用技巧
前端·人工智能·深度学习
β添砖java3 小时前
CSS3核心技术
前端·css·css3
空山新雨(大队长)3 小时前
HTML第八课:HTML4和HTML5的区别
前端·html·html5