У меня есть список флажков. Пользователь может выбрать только 10. Я хочу выделить 11 (и более) отмеченные флажки с помощью CSS , чтобы показать, что они должны снять некоторые из них. (Я знаю, что есть другие способы сделать это, включая JS, и я понимаю ограничения браузера; это упражнение )
Установленные флажки отмечены зеленым цветом, таким образом:
li > input:checked + label {
color: green;
}
Метка флажка 11-й и более должна быть выделена красным:
li > input:checked:nth-child(n+11) + label {
background-color: red;
}
Но это не работает. Простой тест показывает, что у меня хотя бы правильный синтаксис nth-child ():
li:nth-child(n+11) {
background-color: red;
}
Это работает. Есть ли проблема при использовании его с :checked
или селектором +
?
Редактировать: выделенный пример с HTML
Вот как HTML может выглядеть:
<form action="#" method="get">
<ul>
<li><input type="checkbox" id="checks1" name="checks"> <label for="checks3">Test 1</label></li>
<li><input type="checkbox" id="checks2" name="checks"> <label for="checks3">Test 2</label></li>
<li><input type="checkbox" id="checks3" name="checks"> <label for="checks3">Test 3</label></li>
<!-- etc -->
</ul>
</form>
Вот рабочая скрипка JS со всеми сценариями выше: http://jsfiddle.net/eQuEW/1/
В этом примере первые 12 полей были отмечены. Установленные флажки имеют зеленые метки. Флажки 11 и выше содержат текст полужирный как пример того, о чем я говорю. Флажки 11 и 12 должны иметь красный фон (но их нет). Затем, если, например, пользователь должен снять флажок 1, красный фон больше не будет находиться на флажке 11, так как 2-11 представляют первые 10 флажок флажков, а 12 представляет первый, больше чем 10 (и, следовательно, по ошибке).