body * {
visibility: hidden !important;
}
Это скрывает все внутри тела.
.section .white {
visibility: visible !important;
}
Это что-то скрывает с class="white"
, что является потомком чего-то с class="section"
.
Вы не выбираете раздел
<section class="section white">
Единственный элемент с class="white"
- это такой же элемент, который имеет class="section"
. Это не его потомок.
Снять потомок комбинатора:
.section.white {}
У вас нет материала для печати
<section class="section white">
</section>
Там ничего не видно. Вы должны иметь некоторый контент, чтобы он появился!
Если у вас есть контент, то все элементы все равно будут скрыты
body *
совпадет с ними и скроет их.
Просто скройте элементы, которые вам нужны, и ничего больше. Используйте селекторы, которые действительно соответствуют им.
Напишите семантическую разметку, пока вы на ней. Не используйте классы, которые соответствуют типам элементов, либо используйте лучшие имена классов или фактические типы элементов.
Избегайте !important
, это почти всегда больше проблем, чем стоит.
body > :not(section):not(.white) {
visibility: hidden;
}
<header>
This is the header
</header>
<section class="white">
<p>This is a section</p>
<p>...</p>
</section>
<footer>
This is the footer
</footer>