Может ли кто-нибудь объяснить, как работает последняя часть кода? В частности:Как работают вкладки CSS-радио?
[type=radio]:checked {
}
[type=radio]:checked ~ .content {
z-index: 1;
}
Я только начинаю с CSS как NEWB и хотел, чтобы попытаться создать несколько интерактивных вкладок 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;
}
Я понимаю, как работает z-index, я не понимаю, как работают селекторы [type = radio]: checked и checked. .content. Что такое [type-radio]: checked {} на самом деле? Я знаю, что: checked ссылается на то, какое радио проверяется, но я не понимаю понятия о том, как они используются друг с другом и по отношению к остальной части кода, кроме: checked ~. содержимое отображает содержимое отмеченного поля. Сложная вещь - это то, что: checked {} делает и почему это необходимо. –
Хорошо, так как вы нажимаете одну из трех вкладок сверху. Каждый из них является «input type = radio», это похоже на старое радио. Вы использовали, чтобы нажать одну кнопку на радио, и кнопка, которая была нажата, выскочила. Точно так же, как радиокнопки работают в Интернете.В этой строке CSS указывается, что щелкнув переключатель, добавьте «z-index» в контент. Так как только один переключатель может быть активным за один раз, он является единственным, у которого есть более высокий 'z-index', и поэтому он отображает другие. –
Я понял, мой вопрос на самом деле неисправен, потому что [type = radio]: проверено не нужно, я сказал, что это было раньше. Я ошибся при тестировании и полагал, что для его работы необходим отладочный код. Но на самом деле это совсем не нужно, что меня смутило. Спасибо за ответ, хотя, моя ошибка! –