1 Star 0 Fork 81

丶Leaves°/前端页面效果合集

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
伸缩式导航栏001 3.66 KB
一键复制 编辑 原始数据 按行查看 历史
木兰君 提交于 2021-04-09 15:52 . add 伸缩式导航栏001.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>HTML+CSS 伸缩式导航栏</title>
<style>
* {
/* 页面初始化 清除页面元素原有的内外边距 */
padding: 0;
margin: 0;
}
body {
height: 100vh;
/* 背景渐变色 */
background: linear-gradient(#99f, #f99);
}
body,
.navbar,
.navbar ul {
/* 三个元素都需要弹性布局 写一块 */
display: flex;
justify-content: center;
align-items: center;
}
.navbar {
/* 相对定位 */
position: relative;
padding: 20px;
border-radius: 50px;
background-color: #fff;
}
.navbar input {
width: 40px;
height: 40px;
/* 鼠标移入变小手 */
cursor: pointer;
/* 不透明度为0 直接变透明 */
opacity: 0;
}
.navbar span {
/* 绝对定位 */
position: absolute;
left: 25px;
/* 现将两条线都放到一起 然后单独设置第二条线的位置 calc方法可以自动计算数值 */
top: calc(50% - 10px);
width: 30px;
height: 4px;
border-radius: 15px;
background-color: #999;
/* 这里在解决一个问题 现在span覆盖着复选框 我们鼠标放到span点不中复选框 写这个属性就能解决这个问题 即便鼠标放到span上点击也能够选中或者未选中复选框*/
pointer-events: none;
/* 收回来的时候过渡刚好相反 */
transition: transform 0.3s ease-in-out, top 0.3s ease-in-out 0.3s;
}
/* 因为第二条线在navbar这个元素内的第三个位置 所以这里写3 */
.navbar span:nth-child(3) {
top: calc(50% + 6px);
}
.navbar ul {
width: 0;
/* 溢出隐藏 */
overflow: hidden;
/* 现在这个盒子是扁的 待会解决这个问题 */
/* 这个问题出现的原因是 文字被换行显示了 两个汉字竖着排列了 就撑大盒子了 */
/* 这个属性可以让文字就在一行排列 不换行 */
white-space: nowrap;
transition: all 0.5s;
}
.navbar ul li {
list-style: none;
margin: 0 15px;
}
.navbar ul li a {
/* 取消下划线 */
text-decoration: none;
font-size: 20px;
font-weight: 700;
color: #333;
}
.navbar ul li a:hover {
color: #fb7299;
}
/* :checked是当选中的复选框的时候 ~ 是兄弟选择器 查找同一级的ul */
.navbar input:checked~ul {
width: 350px;
}
.navbar input:checked~span:nth-child(2) {
top: calc(50% - 2px);
transform: rotate(-45deg);
background-color: #fb7299;
/* 现在速度太快了 加个过渡 */
/* 这是先执行top 然后.3s后执行transform */
transition: top 0.3s ease-in-out, transform 0.3s ease-in-out 0.3s;
}
.navbar input:checked~span:nth-child(3) {
top: calc(50% - 2px);
transform: rotate(45deg);
background-color: #fb7299;
transition: top 0.3s ease-in-out, transform 0.3s ease-in-out 0.3s;
}
</style>
</head>
<body>
<div class="navbar">
<input type="checkbox" />
<span></span>
<span></span>
<ul>
<li><a href="javascript:void(0)">点赞</a></li>
<li><a href="javascript:void(0)">投币</a></li>
<li><a href="javascript:void(0)">收藏</a></li>
<li><a href="javascript:void(0)">关注</a></li>
<li><a href="javascript:void(0)">分享</a></li>
</ul>
</div>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/QM_C/front_page_effect_collection.git
[email protected]:QM_C/front_page_effect_collection.git
QM_C
front_page_effect_collection
前端页面效果合集
master

搜索帮助