Как установить высоту div на 100% выбранной бумаги?
Как установить высоту на 100% выбранной бумаги?
CSS
width: 100%;
height: 100%;
margin: auto;
margin-top: 0px !important;
border: 1px solid;
Когда я печатаю в Google Chrome, мой печатный div будет только до уровня содержимого в div.
Могу я решить это?
Можно ли сделать div размером с выбранный размер бумаги?
Ответы
Ответ 1
width: 100%;
height:100%;
position:absolute;
top:0px;
bottom:0px;
margin: auto;
margin-top: 0px !important;
border: 1px solid;
также, если позиция абсолютная не будет работать, вы можете сделать то же самое с позицией: исправлено; это будет работать, но может нанести еще больший урон вашему макету, в зависимости от того, как все устроено :)
Я отредактирую это, чтобы сделать его более очевидным, поэтому... если вы используете фиксированную позицию и у вас есть несколько страниц, они просто перейдут один поверх другого, чтобы это было неправильно... но для того, чтобы получите правильный результат с абсолютной позицией, вы должны иметь в виду, что стиль css здесь займет 100% высоты, но высота его родительского... так что если родительский элемент - это тело, просто добавьте html, body{ height:100% };
Ответ 2
Посмотрите на медиа-запросы.
@media print {
html, body {
height: 100%;
}
}
Таким образом, вы можете изменять выходные данные, не испортив свой экран
Ответ 3
Если вы добавите разрыв страницы до конца, элемент переместится в нижнюю часть последней страницы. Это особенно полезно, если вы хотите, чтобы нижний колонтитул появился в нижней части последней страницы:
<div style='position:relative;overflow:hidden;background:#ffe!important'>
<div style='margin-bottom:200px'>
<p>Content here</p>
</div>
<div style='page-break-before:always'></div>
<div style='position:absolute;bottom:0'>Footer</div>
</div>
Это не даст вам лишнюю пустую страницу - пока у вас нет содержимого после разрыва страницы (абсолютно позиционированный нижний колонтитул не учитывается, если только он не просачивается на вторую страницу). Следите за полями, которые выходят за пределы тела!
Ответ 4
Вы должны сделать свой организм 100%, это должно сработать.
html, body {
height: 100%;
}
Это нужно сделать, потому что, как вы знаете, ваш контент находится внутри тела. Тело не имеет высоты по умолчанию 100%, поэтому высота bodys будет просто адаптироваться к содержимому внутри себя, если только вы вручную не придадите ему высоту, как показано в примере выше.
Ответ 5
Самым простым способом, который я нашел для этого, было использование блоков Viewport и page-break-after:always
. Это хорошо работает для печати нескольких страниц.
Я предлагаю структурировать ваш HTML следующим образом:
<div class="someContainerClass">
<section id="pageOne"></section>
<section id="pageTwo"></section>
<section id="pageThree"></section>
</div>
И используя этот CSS:
section {
width: 100vw;
height: 100vh;
page-break-after: always;
}
Таким образом, вы можете разместить свой контент на той странице, на которой он должен быть.