html_css_demo/css/25.css

129 lines
2.6 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*{
/* 初始化 取消内外边距 */
margin: 0;
padding: 0;
}
body{
/* 溢出隐藏 */
overflow: hidden;
}
.navbar{
/* 相对定位 */
position: relative;
/* 100%窗口宽度 */
width: 100vw;
display: flex;
}
.main{
flex: 1;
height: calc(100vh - 43px);
position: relative;
top: 43px;
display: flex;
justify-content: center;
align-items: center;
}
#checkbox{
/* 隐藏复选框 */
display: none;
}
.navbar label{
position: absolute;
top: 0;
left: 70px;
width: 100%;
height: 43px;
font-size: 30px;
color: #5a738e;
background-color: #ededed;
padding-left: 20px;
border: 1px solid #d9dee4;
cursor: pointer;
/* 加个动画过渡 */
transition: all 0.5s;
}
.navbar ul{
list-style: none;
width: 70px;
/* 100%窗口高度 */
height: 100vh;
background-color: #2a3f54;
transition: all 0.5s;
/* 再加个溢出隐藏 */
overflow: hidden;
}
.navbar ul li{
height: 70px;
margin-bottom: 10px;
}
.navbar ul li:first-child{
display: flex;
justify-content: center;
align-items: center;
padding: 0 10px;
}
.navbar ul li:first-child img{
width: 50px;
height: 50px;
border-radius: 50%;
}
.navbar ul li:first-child span{
color: #fff;
/* 文字禁止换行 */
white-space: nowrap;
padding-left: 10px;
/* 先把文字隐藏 */
display: none;
}
.navbar ul li a{
display: flex;
justify-content: center;
align-items: center;
/* 垂直排列 */
flex-direction: column;
width: 100%;
height: 100%;
color: #d1d1d1;
/* 去掉下划线 */
text-decoration: none;
}
.navbar ul li a i{
font-size: 25px;
margin-bottom: 10px;
}
.navbar ul li a span{
font-size: 12px;
white-space: nowrap;
}
.navbar ul li a:hover{
color: #fff;
background-color: #35495d;
}
/* :checked选择器是判断复选框是否被选中 */
/* +是相邻兄弟选择器找到input的下一个兄弟label */
.navbar input:checked + label{
left: 200px;
}
/* ~也是兄弟选择器,但它可以找到隔了几代的兄弟 */
.navbar input:checked ~ ul{
width: 200px;
}
.navbar input:checked ~ ul li:first-child{
/* 将居中改为开头对齐 */
justify-content: flex-start;
}
.navbar input:checked ~ ul li:first-child span{
/* 文字显示 */
display: block;
}
.navbar input:checked ~ ul li a{
flex-direction: row;
justify-content: flex-start;
}
.navbar input:checked ~ ul li a i{
font-size: 18px;
margin: 0 15px 0 30px;
}
.navbar input:checked ~ ul li a span{
font-size: 14px;
}