2013-11-27 41 views
1

我有HTML包含如下用css媒体类型打印特定的div内容打印?

<frameset rows="60,*" border="0" frameborder="0"> 
    <frame name="frameA"> 
    <frameset cols="120,*" > 
     <frame name="frameB" frameborder=0 > 
     <frame name="frameC"> 
    </frameset> 
    </frameset> 

内部帧C我有ID为 “myDivToPrint” DIV帧。我想当用户点击浏览器打印时, 它只是打印div myDivToPrint的内容。这里是我的相关CSS

CSS

@media print { 
    #myDivToPrint { 
     background-color: white; 
     height: 100%; 
     width: 100%; 
     position: fixed; 
     top: 0; 
     left: 0; 
     margin: 0; 
     padding: 15px; 
     font-size: 14px; 
     line-height: 18px; 
    } 
} 

HTML

<div id="myDivToPrint" class="page-container myDivToPrint"> 
    </div> 

但它似乎并没有对打印/打印预览任何影响(火狐显示器所有框架内容和铬只显示 pri下的顶部框架内容nt预览)。有任何想法吗?

参考上面的方法: - 公元前后,在Print the contents of a DIV

+0

打印div将相对于框架视口固定,您还需要使框架a和c也具有固定样式 – Pete

+0

@Pete。如果你能详细说明你的评论会很有帮助。我无法理解这一点:( – emilly

+0

你正在定位你的div,这意味着它通常被定位到视口,但是因为你的div在iframe中,你只是覆盖整个iframe由于您的打印是从iframe之外调用的,因此您需要确保它覆盖整个主视图窗口,因此在打印“height”时需要将以下样式添加到框架A和框架c中:100%;宽度:100%;位置:固定;' – Pete

回答

1

您必须隐藏你不希望打印的元素。类似这样的:

@media print { 
    #myDivToPrint { 
     ... 
    } 

    #elementYouDontWantToPrintId { 
     display:none; 
    } 

} 
1

使用一个新的窗口很容易使用javascript。

 function printout() { 

     var newWindow = window.open(); 
     newWindow.document.write(document.getElementById("output").innerHTML); 
     newWindow.print(); 
    }