#html #css #css-selectors
#HTML #css #css-селекторы
Вопрос:
<input type="checkbox" name="NotifyWhenOpen" value="true">
<input type="hidden" name="NotifyWhenOpen" value="false">
<label for="NotifyWhenOpen">amp;nbsp;</label>
Приведенный выше html не работает, в то время как приведенный ниже работает
<input type="checkbox" name="NotifyWhenOpen" value="true">
<label for="NotifyWhenOpen">amp;nbsp;</label>
<input type="hidden" name="NotifyWhenOpen" value="false">
CSS:
.checkbox { position: relative; margin-top: 2px; padding: 0; display: inline-block }
.checkbox input[type=checkbox] { display: none; padding-left: 0; }
.checkbox label:before { border-radius: 3px; content: ""; display: inline-block; width: 16px; height: 16px; margin-right: 10px; position: absolute; left: 0; bottom: 1px; background: #eef5f7; border: 1px solid #999; }
input[type=checkbox]:checked label:before { content: "2713"; font-size: 13px; color: #0090D9; text-align: center; font-weight: 600; line-height: 15px; }
Скрипка Js:http://jsfiddle.net/x8VGB /
Как заставить его работать и с первым?
Ответ №1:
В первом примере ваш label
элемент не является смежным аналогом вашего checkbox
ввода (скрытый ввод находится посередине): поэтому вам нужно использовать общий селектор родственных элементов ~
для назначения несмежного родственного элемента
input[type="checkbox"]:checked ~ label:before
Смотрите Документы MDN для получения дополнительной информации и поддержки браузера
Комментарии:
1. Спасибо, это работает. Не могли бы вы, пожалуйста, сказать мне, где я могу получить документацию для этого.
Ответ №2:
Вам нужно использовать другой
Используйте ~ вместо
Комментарии:
1. На это уже был дан ответ и объяснено, но 1 за ваши усилия.