有人可以解释代码的最后一部分是如何工作的吗?具体来说:
[type=radio]:checked {
}
[type=radio]:checked ~ .content {
z-index: 1;
}
我刚从 CSS 作为新手开始,想尝试创建一些交互式 CSS 选项卡;这使我查看了一些现有的代码。不用说,这让我很困惑。
为什么[type=radio]:checked
需要?它z-index: 2;
在括号内,但我把它拿出来了,代码仍然可以正常工作;尽管当我尝试[type=radio]:checked
一起删除所有代码时,代码会中断。为什么?它目前没有属性。
[type=radio]:checked ~ .content
曾经是,[type=radio]:checked ~ label ~ .content
但我拿出标签,它仍然可以正常工作。为什么需要它?
HTML:
<div class="tab">
<input type="radio" id="tab-1" name="tab-group-1" checked>
<label for="tab-1">Tab One</label>
<div class="content">
tab#1
</div>
</div>
<div class="tab">
<input type="radio" id="tab-2" name="tab-group-1">
<label for="tab-2">Tab Two</label>
<div class="content">
tab#2
</div>
</div>
<div class="tab">
<input type="radio" id="tab-3" name="tab-group-1">
<label for="tab-3">Tab Three</label>
<div class="content">
tab#3
</div>
</div>
</div>
</html>
CSS:
.tabs {
position: relative;
height: 200px; /* This part sucks */
clear: both;
margin: 25px 0;
}
.tab {
float: left;
}
.tab label {
background: #eee;
padding: 10px;
border: 1px solid #ccc;
margin-left: -1px;
position: relative;
left: 1px;
}
.tab [type=radio] {
display: none;
}
.content {
position: absolute;
top: 28px;
left: 0;
background: white;
right: 0;
bottom: 0;
padding: 20px;
border: 1px solid #ccc;
}
[type=radio]:checked {
}
[type=radio]:checked ~ .content {
z-index: 1;
}