<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS3实现Tab切换</title>
<style>
* { margin: 0;
padding: 0;
}
.main {
width: 300px;
height: 150px;
margin: 50px auto;
position: relative;
color: #fff;
}
.main input {
display: none;
}
.main label {
cursor: pointer;
height: 24px;
display: block;
}
.main ul {
list-style: none;
}
.main li {
float: left;
width: 50px;
height: 24px;
line-height: 24px;
background: red;
margin-right: 3px;
}
.main div {
width: 300px;
height: 126px;
position: absolute;
top: 24px;
left: 0;
background: #000;
display: none;
}
.main input:checked~ label {
background: #000;
}
.main input:checked~ div {
display: block;
}
</style>
</head>
<body>
<div class="main">
<ul>
<li>
<input type="radio" name="tabs" id="tab1" checked>
<label for="tab1">Tab1</label>
<div>11111111111111</div>
</li>
<li>
<input type="radio" name="tabs" id="tab2">
<label for="tab2">Tab2</label>
<div>222222222222222</div>
</li>
</ul>
</div>
</body>
</html>
里面的这段
.main input:checked~ label {
background: #000;
}
.main input:checked~ div {
display: block;
}
还有input为什么必须指定name属性
<input type="radio" name="tabs" id="tab1" checked>
<input type="radio" name="tabs" id="tab2">
上面那个css就具体到checked属性后标签的样式,至于为什么要指定name,这是radio必须的。指定一样的名字,才能过去唯一的radio值