Есть ли способ распечатать только вложенный «id = printarea» div (с стилем), используя только css (не javascript), в IE8 на Windows?Ограничить область печати до div
<div id="main">
This should NOT be shown in Print Preview
<div id="printarea">ONLY this should be shown in Print Preview
<table><tr><th>one</th><th>one</th></tr><tr><td>one</td><td>one</td></tr></table></div>
</div>
Я пробовал использовать css, но он ничего не отображает (очевидно) из-за наследования. Следующий пример показывает мое намерение.
@media print {
* { display:none; }
#printarea { display:block; }
}
Я успешно использовал JavaScript (который работает), но я не считаю это элегантное решение, так как я должен был бы тянуть весь импорт CSS и блоков стиля в document.write.
function printDiv(divId){
var divToPrint = document.getElementById(divId);
newWin= window.open();
newWin.document.write('<style>table,tr,td,th{border-collapse:collapse;border:1px solid black;}</style>');
newWin.document.write(divToPrint.innerHTML);
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
}
Пример:http://jsfiddle.net/D7ZWh/2/
Связанный: Overriding parent's CSS display property
Я добавил бы «#media #printarea * {display: block;}», потому что #main * затрагивает всех детей, а не только прямых детей, и они могут быть скрыты, даже если #printarea отображается, это может быть "#main> * {display: none;}", но я думаю, что это не решение для кроссбраузера – arieljuod
Я думаю, что дочерний селектор будет работать. Но да, тот или другой был бы необходим. – David