Guedda
@Guedda
Начинающий front-end разработчик

Как стилизовать label, который стоит до input, если input:disabled?

Здравствуйте
Есть следующая разметка:
<label for="some1">This is label</label>
<input type="text" name="some1" value="Test" />

Мне необходимо изменить цвет label если input:disabled
Я пробовал так:
& > label input:disabled {
  color: red;
}

Но не работает. Даже не представляю, как еще можно конструкцию поставить.
Заранее благодарен за ответы.
  • Вопрос задан
  • 293 просмотра
Решения вопроса 2
szQocks
@szQocks
label:has(+ input:disabled) {
color: red;
}
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега CSS
Сходу ничего лучше вот такого не придумалось:
<div class="form-element">
  <input type="text" name="some1" value="Test" disabled />
  <label for="some1">This is label</label>
</div>


.form-element {
  display: flex;
  flex-direction: row;
}

.form-element label {
  order: 1;
}

.form-element input {
  order: 2;
}

.form-element input:disabled + label {
  color: red;
}


Должен бы работать просто селектор input:disabled ~ label, но почему-то не работает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
label:has(~ input:disabled) {
  color: red;  
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы