学习链接:【前端经典】纯css的tab选项卡,滑动tab选项卡,网页设计与制作,前端开发。
易错点:写清楚是哪个标签,对于子标签操作一定要写清楚,不要只写父标签
最终效果:
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
text-decoration: none;
}
.tab{
width: 500px;
height: 400px;
background-color: #ccc;
/* 隐藏2000px超出的部分 */
overflow: hidden;
}
.tab input{
display: none;
}
.tab label{
width: 100px;
height: 40px;
display: inline-block;
background-color: #ccc;
text-align: center;
line-height: 40px;
cursor: pointer;
border-radius: 12px 12px 0 0;
float:left;
margin-right: 2px;
}
.tab label:hover{
background-color: orange;
}
.content{
/* 2000=500*4 */
width: 2000px;
height: 360px;
background-color: orange;
float: left;
transition: 0.3s;
}
.content li{
width: 500px;
height: 360px;
text-align: center;
float: left;
}
/* 选项被选中时,背景为orange */
#ck1:checked ~ label[for="ck1"]{background-color: orange;}
#ck2:checked ~ label[for="ck2"]{background-color: orange;}
#ck3:checked ~ label[for="ck3"]{background-color: orange;}
#ck4:checked ~ label[for="ck4"]{background-color: orange;}
.tab img{
width: 300px;
height: 300px;
margin-top: 30px;
}
/* 点击后ul位置变化 */
#ck1:checked ~ ul{margin-left: 0px;}
#ck2:checked ~ ul{margin-left: -500px;}
#ck3:checked ~ ul{margin-left: -1000px;}
#ck4:checked ~ ul{margin-left: -1500px;}
</style>
</head>
<body>
<div class="tab">
<!-- 四个选项卡 -->
<!-- 设置初始状态选中春 -->
<input type="radio" id="ck1" name="mytab" checked>
<input type="radio" id="ck2" name="mytab">
<input type="radio" id="ck3" name="mytab">
<input type="radio" id="ck4" name="mytab">
<label for="ck1">春</label>
<label for="ck2">夏</label>
<label for="ck3">秋</label>
<label for="ck4">冬</label>
<!-- 内容块 -->
<ul class="content">
<!-- 添加四个内容项 -->
<li><img src="1.jpg" alt=""></li>
<li><img src="2.jpg" alt=""></li>
<li><img src="3.jpg" alt=""></li>
<li><img src="4.jpg" alt=""></li>
</ul>
</div>
</body>
</html>