CSS: скрытые элементы по-прежнему занимают место при выводе на печать - PullRequest
11 голосов
/ 15 июня 2010

Я использую css только для печати части страницы:

    body {
 visibility:hidden;
    }
    .print {
     visibility:visible;
     background-color: white;
     margin: 0;
    } 

Раздел над элементом, который я хочу напечатать, правильно скрыт в выводе на печать, однако он все еще занимает область пространства. Я проверил это, составив длинный вертикальный список слов. В выводе на печать та же самая область пробела происходит без слов, и затем происходит вывод элемента. Эта проблема возникает только на Chrome и Mozilla. Я также протестировал параметры полей браузера, и это не проблема.

Есть идеи?

Ответы [ 7 ]

18 голосов
/ 15 июня 2010

Вы хотите display:none, а не visibility:hidden. Последний делает элемент невидимым, но не удаляет его из потока документов.

2 голосов
/ 25 ноября 2014

, если мы хотим display:inline-block или display:block вместе со скрытой видимостью.

Тогда мы можем использовать следующий css в качестве обходного пути.

{
    visibility:hidden
    width:0px;
    height:0px 
}
2 голосов
/ 17 июня 2010

Используйте @media для печати. Например:

@media print {
  * {display: none;} /*or if you want only the body*/ body {display: none;}
  .print {display: block;}
}

(только грубый пример. Фактическая таблица стилей должна включать все элементы страницы вместо подстановочных знаков)

Тогда таблица стилей используется только при печати или предварительном просмотре.

1 голос
/ 15 июня 2010

использовать дисплей: нет; так как вы хотите отображать только печать и без части тела.

1 голос
/ 15 июня 2010

Попробуйте использовать display: none;.

1 голос
/ 15 июня 2010

Использование display:none;

0 голосов
/ 03 февраля 2011

Даже visibility:collapse; делает это!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...