CSS-过渡模块
过渡的三要素
- 必须要有
属性
发生变化 - 必须告诉系统哪个属性需要执行过渡效果
- 必须告诉系统过渡效果的持续时长
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过渡模块</title>
<style>
* {
margin: 0;
padding: 0;
}
div {
width: 100px;
height: 50px;
background-color: red;
/* 告诉系统哪个属性需要执行过渡效果 */
transition-property: width, background-color;
/* 告诉系统过渡效果的持续的时长 */
transition-duration: 5s, 5s;
/*
transition-property: background-color;
transition-duration: 5s;
*/
}
/* :hover 这个伪类选择器除了可以用在 a 标签上,还可以用在其它的任何标签上 */
div:hover {
width: 300px;
background-color: blue;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
注意点
当多个属性需要同时执行过渡效果时用逗号隔开即可,示例如下
transition-property: width, background-color;
transition-duration: 5s, 5s;
过渡模块的其它属性
transition-delay
:告诉系统延迟多少秒之后才开始过渡动画transition-timing-function
:告诉系统过渡动画的运动的速度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过渡模块-其它属性</title>
<style>
* {
margin: 0;
padding: 0;
}
ul {
width: 800px;
height: 500px;
margin: 0 auto;
background-color: pink;
border: 1px solid #000;
}
ul li {
list-style: none;
width: 100px;
height: 50px;
margin-top: 50px;
background-color: blue;
transition-property: margin-left;
transition-duration: 10s;
}
ul:hover li {
margin-left: 700px;
}
ul li:nth-child(1) {
/* 告诉系统过渡动画的运动的速度 */
transition-timing-function: linear;
}
ul li:nth-child(2) {
transition-timing-function: ease;
}
ul li:nth-child(3) {
transition-timing-function: ease-in;
}
ul li:nth-child(4) {
transition-timing-function: ease-out;
}
ul li:nth-child(5) {
transition-timing-function: ease-in-out;
}
</style>
</head>
<body>
<ul>
<li>linear</li>
<li>ease</li>
<li>ease-in</li>
<li>ease-out</li>
<li>ease-in-out</li>
</ul>
</body>
</html>
过渡的连写格式
连写格式如下所示
transition: 过渡属性 过渡时长 运动速度 延迟时间;
过渡连写的注意点
- 和分开写一样, 如果想给多个属性添加过渡效果也是用逗号隔开即可
- 连写的时可以省略后面的两个参数, 因为只要编写了前面的两个参数就已经满足了过渡的三要素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过渡模块-连写</title>
<style>
* {
margin: 0;
padding: 0;
}
div {
width: 100px;
height: 50px;
background-color: red;
/*
transition-property: width;
transition-duration: 5s;
transition: width 5s linear 0s,background-color 5s linear 0s;
transition: background-color 5s linear 0s;
transition: width 5s, background-color 5s, height 5s;
*/
transition: all 5s;
}
div:hover {
width: 300px;
height: 300px;
background-color: blue;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
如果多个属性运动的速度 / 延迟的时间 / 持续时间都一样, 那么可以简写为如下所示的例子
transition: all 0s;
编写过渡的套路
- 不要管过渡, 先编写基本界面
- 修改我们认为需要修改的属性
- 再回过头去给被修改属性的那个元素添加过渡即可
弹性效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过渡模块-弹性效果</title>
<style>
* {
margin: 0;
padding: 0;
}
div {
height: 100px;
background-color: red;
margin-top: 100px;
text-align: center;
line-height: 100px;
}
div span {
font-size: 80px;
/*
transition-property: margin;
transition-duration: 3s;
*/
transition: margin 3s;
}
div:hover span {
margin: 0 20px;
}
</style>
</head>
<body>
<div>
<span>BNTang</span>
<span>handsome boy</span>
<span>带</span>
<span>你</span>
<span>狂</span>
<span>虐</span>
<span>H</span>
<span>5</span>
</div>
</body>
</html>
手风琴效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过渡模块-手风琴效果</title>
<style>
* {
margin: 0;
padding: 0;
}
ul {
width: 960px;
height: 300px;
margin: 100px auto;
border: 1px solid #000;
overflow: hidden;
}
ul li {
list-style: none;
width: 160px;
height: 300px;
background-color: red;
float: left;
/*
border: 1px solid #000;
box-sizing: border-box;
transition-property: width;
transition-duration: 0.5s;
*/
transition: width 0.5s;
}
ul:hover li {
width: 100px;
}
ul li:hover {
width: 460px;
}
</style>
</head>
<body>
<ul>
<li><img src="images/ad1.jpg" alt=""></li>
<li><img src="images/ad2.jpg" alt=""></li>
<li><img src="images/ad3.jpg" alt=""></li>
<li><img src="images/ad4.jpg" alt=""></li>
<li><img src="images/ad5.jpg" alt=""></li>
<li><img src="images/ad6.jpg" alt=""></li>
</ul>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具