Выбрав <label>, но исключая <label>, которые содержат <input>

81
10

У меня есть 2 типа ярлыков, нормальные метки, такие как первая строка, и метки, которые содержат поле ввода внутри них. Какое правило CSS позволяет мне выбрать все <label>, но исключить все метки, которые содержат <input> внутри?


<label for="type">Some Label</label>

<label for="type">
<input type="checkbox" value="1" id="type">Some Label
</label>

спросил(а) 2020-03-25T19:04:36+03:00 6 месяцев, 1 неделя назад
1
Решение
69

Лучшим способом сделать это будет добавление к ним разных классов или, по крайней мере, одного из них.


CSS не имеет родительского селектора, поэтому вы не можете проверить элемент, содержащий другой, с некоторым javascript.

Некоторые предпосылки:
Селектор CSS для "foo, содержащий строку" ?
Есть ли родительский селектор CSS?
Селектор родительских/предков CSS
Сложный селектор CSS для родителя активного дочернего элемента

ответил(а) 2020-03-25T19:20:39.102670+03:00 6 месяцев, 1 неделя назад
71

Селектор "соседнего сиблинга" должен работать, IF, который вы ищете для меток + входных пар:


label+input
{
/* rules */
}

Это будет игнорировать ваши вложенные в метку входы, если не произойдет ввода после метки, в которой есть вход.


См. ссылку на ссылку Sitepoint CSS: http://reference.sitepoint.com/css/adjacentsiblingselector

ответил(а) 2020-03-25T19:04:36+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема