Каждый раз, когда я нависаю над маркировкой флажка, это становится желтым:
<input type="checkbox" value="hello" id="hello" name="deletefiles[]"/>
<label for="hello">hello</label>
label:hover, label:active {
background:yellow;
}
Когда я нависаю над связанным флажком, я хочу, чтобы маркировка выделилась. Существует ли способ запустить то же правило при наведении курсора с помощью CSS, если я нависаю над флажком также? Или я должен буду использовать JavaScript для этого...?
Вы можете использовать селектор CSS sibling, например, такой:
label:hover, label:active, input:hover+label, input:active+label {
background:yellow;
}
Обратите внимание, что это не будет работать в IE6.
Просто установите флажок внутри метки:
<label for="hello">
<input type="checkbox" value="hello" id="hello" name="deletefiles[]"/>
hello
</label>
Теперь, когда вы наводите курсор на флажок, вы также будете наводить курсор на метку, и ваших существующих правил будет достаточно, чтобы выделить ее.
Решение jQuery:
$(document).ready(function(){
$('#hello, label[for="hello"]').hover(function(){$(this).addClass('.hover');},
function(){$(this).removeClass('.hover');});
});
...
.hover
{
background-color: yellow;
}
И это ДЕЙСТВИТЕЛЬНО работает в IE6.