Задать вопрос
Mirami97
@Mirami97
студент

Как выбрать все элементы которое находится над другим элементом с помощью CSS?

<div>
    <label for="test">Text</label>
    <input type="text" id="test>
</div>


При фокусе на input я хотел менять стили label но у меня не получается. Есть ли способ это сделать с помощью CSS.
На пример при фокусе на input надо менять цвет текста label.
Проста я не должен менять input и label местами. Если их поменять местами то можно реализовать.
Это выглядеть так: input:focus + label

Есть ли способ не меняя местами input и label изменит стили label с помощью CSS
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
fallus
@fallus
Никак нельзя выбрать предыдущих в CSS.

Можно зашаманить так, всё же меняя их местами, но визуально они будут в том же положении:
<div>
  <input type="text" id="test">
  <label for="test">Text</label>
</div>


div{
  display: flex;
  flex-direction: column;
}
label{ order: 1 }
input{ order: 2 }
input:focus + label{ background: red }
Ответ написан
Комментировать
MrDecoy
@MrDecoy Куратор тега CSS
Верставший фронтендер
На пример при фокусе на input надо менять цвет текста label.

Можно, с помощью псевдокласса :focus-within
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Нет. CSS позволяет обратиться только к нижележащим соседям или дочерним элементам.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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