Действительно ли возможно, только с CSS, разработать маркировку HTML, зависящую от состояния ее входа?
В моем случае я хочу разработать <input type="checkbox">
на основе того, проверяется ли это.
Я пытался поместить маркировку во входе, но Firefox и Chrome (по крайней мере), кажется, анализируют их как одноуровневые элементы, даже при том, что они ясно вкладываются во входном источнике. И я не знаю, как записать правило CSS, которое может косвенный через для = атрибут.
Я должен выкрикнуть JavaScript на этом?
Их не нужно вкладывать, вот что означает "для Атрибут "для" в элементе
В современных браузерах (поддерживающих CSS 2.1) вы можете использовать одноуровневый селектор, например
input + label {
/* rules */
}
. У вас должна быть разметка в строгих одноуровневых отношениях, например:
<input name="cb" id="cb" type="checkbox"><label for="cb">Checkbox</label>
Использование смежного селектора / одноуровневого селектора плюс селектора атрибутов заставит его работать:
<form>
<style>
INPUT[checked=checked] + LABEL {
color: #f00;
}
</style>
<div>
<input type="checkbox" id="chk1" />
<label for="chk1">Label #1</label>
</div>
<div>
<input type="checkbox" id="chk2" checked="checked" />
<label for="chk2">Label #2</label>
</div>
</form>