CSS: скрыть родителя, если дочерний элемент: пустой?

Я хочу скрыть родительский тег <li>, если его дочерний тег <a> пуст. Поэтому в следующем примере я хотел бы скрыть второй <li>:

<ul>
  <li>
    <a href = "test1.html">Test 1</a>
  </li>
  <li>
    <a></a>
  </li>
  <li>
    <a href = "test2.html">Test 2</a>
  </li>
</ul>

Я могу связаться с <a> через li a:empty, и это работает нормально. Но как мне добраться до его родителя, <li> ? Пожалуйста, только CSS-решения... спасибо!

Как получить этот пустой элемент? в css нет родительского селектора. Я думаю, что лучшее решение - проверить перед тем, является ли элемент пустым или нет

Sfili_81 23.11.2022 17:29

Пустой элемент предоставляется компанией-партнером. Они оставляют весь узел в коде, хотя в этом нет необходимости. И поскольку у каждого элемента списка есть объявление css, я хотел определить пустые элементы, чтобы скрыть их вообще. Решение, предоставленное @Gerard, просто идеально!

JonSnow 24.11.2022 10:53
Приемы 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 сценарий полностью изменился.
0
2
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Единственное решение для CSS — это псевдоселектор has(). К сожалению, пока не поддерживается Firefox

Возможно, вы захотите рассмотреть полифилл до тех пор.

li:has(a:empty) {
  display: none;
}
<ul>
  <li>
    <a href = "test1.html">Test 1</a>
  </li>
  <li>
    <a></a>
  </li>
  <li>
    <a href = "test2.html">Test 2</a>
  </li>
</ul>

Это потрясающе и абсолютно работает для моей проблемы - большое спасибо!

JonSnow 24.11.2022 08:25

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