Я хочу скрыть родительский тег <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, я хотел определить пустые элементы, чтобы скрыть их вообще. Решение, предоставленное @Gerard, просто идеально!






Единственное решение для 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>Это потрясающе и абсолютно работает для моей проблемы - большое спасибо!
Как получить этот пустой элемент? в css нет родительского селектора. Я думаю, что лучшее решение - проверить перед тем, является ли элемент пустым или нет