CSS3(2)--- 过渡(transition)
CSS3(2)--- 过渡(transition)
一、概念
1、什么是过渡
通俗理解
是从一个状态 渐渐的过渡到 另外一个状态。
比如一个盒子原先宽度为100px,当鼠标点击时盒子的宽度变成200px,如果直接从100px变化到200px。从视觉上看去并不友好。我们更喜欢看到的是平滑的过渡。
2、浮动的语法
属性语法格式
transition: 要过渡的属性 花费时间 运动曲线 何时开始;
// 如果有多组属性变化,还是用逗号隔开。前两个属性必须写。后两个可以不写。运动曲线默认匀速。开始时间默认0秒。
属性值

注意
- 如果想要所有的属性都变化过渡, 写一个all 就可以
- transition-duration 花费时间 单位是 秒 s (这个秒是一定需要的)
- 运动曲线 默认是 ease
- 默认是 0s 立马开始
- 过渡写到本身上 谁做过渡动画,写到谁身上(下面例子说明)
运动曲线示意图

二、示例
1、示例一
效果

代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3过渡</title>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
/*transition: width 0.5s ease 0s, height 0.3s; 多组属性用逗号分隔*/
transition: all 1s; /* 这里过渡是当前div,按照谁做过渡动画,写到谁身上,所以这里要写在这里*/
}
div:hover {
width: 400px;
height: 300px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
2、示例二
效果

代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS过渡</title>
<style>
div {
width: 183px;
height: 130px;
border: 1px solid red;
overflow: hidden; /*多余部分隐藏*/
}
div img {
width: 193px;
height: 130px;
transition: all 0.4s; /*所以变化,过渡时间0.4秒*/
}
div:hover img {
margin-left: -10px; /*移动*/
}
</style>
</head>
<body>
<div>
<img src="1.jpg" alt="">
</div>
</body>
</html>
3、示例三
效果

代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css过渡</title>
<style>
* {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
.subnav {
margin: 100px auto;
width: 20px;
}
.subnav li {
width: 20px;
height: 20px;
margin: 3px 0;
background-color: pink;
position: relative;
}
.subnav div {
position: absolute; /*子绝父相*/
right: 0;
top: 0;
height: 20px;
width: 0;
background-color: purple;
transition: all 0.6s;
z-index: -1; /*这里设置定位级别小于父类,所以父类浮在它上面*/
}
.subnav li:hover div {
width: 100px;
}
</style>
</head>
<body>
<div class="subnav">
<ul>
<li>
<div></div>
</li>
<li><div></div></li>
<li><div></div></li>
<li><div></div></li>
<li><div></div></li>
</ul>
</div>
</body>
</html>
你如果愿意有所作为,就必须有始有终。(16)
分类:
【前端】--HTML+CSS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了