Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Как не показывать див с содержанием display:none кроссбраузерно

Для того, чтобы не показывать пустой див я использую псевдокласс :empty. Но нужно скрывать не только пустой див, но и див в котором содержимому прописан стиль display:none, и он только выглядит как пустой, и на самом деле в нем есть html код. Существует ли способ, скрыть такой блок? Желательно с помощью только css
div { display: inline-block; background: purple; color: white; padding: 1rem; } div:empty{ display:none; }
Див:

123



Див с пробелом:
 



Пустой див:



Див с содержимим:
456



Див с содержимим со стилем display:none:
789




Ответ

С помощью css только в теории, с использованием селектора :has, но пока не поддерживают его браузеры (http://caniuse.com/#feat=css-has)
div:has(> section[style*="display:block"]) { display: none; }
Но через jQuery с использованием такого же селектора должно работать
$("div:has(section[style*=`display:block`]").hide()

Комментариев нет:

Отправить комментарий