Попытка скрыть псевдоэлемент в фокусе ввода через ~

Я пытаюсь скрыть псевдоэлемент родителей :: перед тем, как скрыть фокус ввода, и он не должен работает с фокусом кнопки. В настоящее время это выглядит так

.parent::before{
  content: 'default';
}

.parent:focus-within::before{
  display: none;
}
<div class = "parent">
  <input type = "text">
  <button>awd</button>
</div>

и это, кажется, не работает. Я не хочу использовать какие-либо js/jquery. Было бы здорово, если бы было какое-нибудь ванильное решение css или хотя бы scss. Заранее спасибо!


Ваш код работает для меня, как и ожидалось. Какой браузер вы используете?

Jared 19.03.2022 23:11

@Jared Я обновил свой вопрос, на этот вопрос был ответ, а затем я обновил скрипку, так как у меня возникла другая проблема с предложенным решением: focus-within. Парень, который ответил на мой вопрос здесь, сказал, что обновит свой ответ, но вместо этого просто удалил его.

Aksultan 20.03.2022 08:52

То, что вы хотите, не может быть достигнуто с вашей текущей структурой HTML. Вы не можете исключить потомков из срабатывания :focus-within. Вам придется сделать кнопку не потомком элемента, на котором вы устанавливаете фокус внутри.

connexo 20.03.2022 09:34
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
3
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

label::before{
  content: 'default';
}

label:focus-within::before{
  display: none;
}
<div class = "parent">
  <label>
     <input type = "text">
  </label>
  <button>awd</button>
</div>

Другие вопросы по теме