2011-02-04 58 views
1

我需要根据HTML在屏幕上显示下面的div,但是当我打印索赔人名称,案例信息,联系人时,文件应该在第一页上打印并且索赔人名称,服务应该在第二页打印。CSS屏幕和打印问题

有人可以告诉我一种方法来解决它使用CSS?

<body>   
    <div>Claimant Name</div> 

    <div>Case Info</div>  

    <div>Contacts</div> 

    <div>Files</div> 

    <div>Service</div> 
</body> 
+0

没有一些复杂的jQuery魔术或与打印样式表一起复制元素是不可能的。你有没有考虑提供自定义打印视图? – 2011-02-04 15:32:37

+0

@皮卡,如果标记不能改变,那么你是正确的。脚本将有必要再次添加名称。我想一个jQuery $('body> div:first-child')会将第一个div放在正文中,以便将其复制到正确的位置。 – mark123 2011-02-04 15:59:09

回答

2

相同的答案我张贴在CSS创建者:所以有最肯定有更好的方式来标记它

DIV不借给任何语义。它确实涉及到添加第二个名称字段,但我不认为这是任何问题。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Le documents judiciaires</title> 
    <style type="text/css" media="screen"> 
     #secondPage .name { 
      display: none; 
     } 
    </style> 
    <style title="text/css" media="print"> 
     #secondPage { 
      page-break-before: always; 
     } 
    </style> 
</head> 

<body> 
    <div id="firstPage"> 
     <div class="name">Claimant Name</div> 
     <div>Case Info</div> 
     <div>Contacts</div> 
     <div>Files</div> 
    </div> 
    <div id="secondPage"> 
     <div class="name">Claimant Name</div> 
     <div>Service</div> 
    </div> 
</body> 
</html> 
3

你不能保证HTML的打印方式 - 这简直是不可能的。如果您需要保证文档的打印方式,您需要使用iTextSharp或类似的

2

创建类似PDF的文档。您可以使用CSS在监视器显示屏和打印版上显示和隐藏各种元素。例如,您可以在文档上拥有索赔人名称两次,但第二个隐藏在屏幕上。打印时可以看到它。

但是,当打印网页时无法控制分页。你可能想考虑一个PDF或其他印刷文件格式。 HTML比纸质打印更多地面向浏览器显示。

+0

糟糕,我在发布我的答案时没有看到这个,因为我正在寻找我在其他论坛上发布的代码。除了使用page-break-after/page-break之外,它基本上与我说的相同,然后才能控制分页。我相信这是浏览器依赖。我不会把它放过IE浏览器以某种方式搞砸了。 :) – mark123 2011-02-04 15:44:59