【发布时间】:2013-12-03 23:57:07
【问题描述】:
有没有办法在 Windows 上的 IE8 中仅使用 css(不是 javascript)打印嵌套的“id=printarea”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(可行),但我不认为它是一个优雅的解决方案,因为我必须在 document.write 中引入所有 css 导入和样式块。
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();
}
【问题讨论】: