Можно применять стили «Только для печати», то есть стили страницы CSS, которые применяются только при печати страницы.
Этого можно достичь, добавив стили только для печати в следующий селектор носителей:
@media print {
/* print-only styles here */
}
Что вы можете сделать, это скрыть все элементы, которые не имеют класса .printableArea.
@media print {
body :not(.printableArea) {
display: none !important;
}
}
Но это на самом деле скроет потомков класса .printableArea, а не идеал. Мы можем выбрать этих потомков по отдельности и сбросить их свойство display к их начальному значению.
@media print {
body :not(.printableArea) {
display: none !important;
}
body .printableArea * {
display: initial !important;
}
}
Это означает, что вы можете полностью удалить свой JavaScript и изменить кнопку печати на:
<input type="button" align="centre" onclick="window.print()"
value="Print Page"/>
Интерактивный пример
@media print {
body :not(.printableArea) {
display: none !important;
}
body .printableArea * {
display: initial !important;
}
}
<div class="printableArea">Print this</div>
<div>But dont print this</div>
<div class="printableArea"><span>Also print this</span></div>
<button onclick="window.print()">Print</button>