微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – CSS打印布局 – 单页打印

我被卡住了,SO档案没有帮助我.也许我在错误的地方看.这是一个简短的故事:

>我有一个看法,我需要打印在一个完整的页面.我不能有第二页,我需要它在页面上尽可能大.
>解决方案必须具有合理的跨浏览器兼容性(IE9,Safari,Chrome,FF).
>我已经有一个PDF解决方案,但是我也需要一个简单的香草打印解决方案.
>该页面是使用Bootstrap构建的,但是我已经覆盖了Print的大部分类.

HTML页面的结构如下.我删除了一些内联CSS,以定制一些这样的信息.

<div class="container">
  <div class="row">
    <div class="span16">

      <style type="text/css" media="all">
        @media print {
          html,body {
            margin: 0;
            padding: 0;
            background: #FFF; 
            font-size: 9.5pt;
          }
          .container,.container div {
            width: 100%;
            margin: 0;
            padding: 0;
          }
          .template { overflow: hidden; }
          img { width: 100%; }
        }
      </style>

      <div class="template_holder">
        <div class="template">
          <img src="some_big_image">
          <div>
            [PLAIN TEXT IN HERE,POSITION:ABSOLUTE OVER THE IMAGE]
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

我意识到这里有一些不好的形式来包括在线CSS,但是由于各种原因,它必须重写一堆其他的CSS.我可以把它拉回来,但它的要点就是这样.当我打印时,我会看到正确的东西,再加上一个额外的第二页.当我缩小图像时,一切都可以,但是我需要图像来填充DIV.

我认为设置宽度为100%是问题,但我确保图像宽高比小于页面(即使有任何边距).基本上,全宽度的图像不应该导致分页符.我做错了什么我需要改变什么?任何帮助是赞赏…

解决方法

我认为CSS的这个细节的沮丧是,答案必须适合我自己的项目.感谢@blahdiblah等提出建议.混合的解决方案导致近乎完美的结果,虽然IE仍然给我问题…

它与所有填充/边距样式的硬重置,然后很多重要的标记填充,宽度,高度等.基本上,我填充页面与高度,然后放在100%宽的对象.结果是在8.5×11页面上的最大覆盖率,零溢出到第二页.

@media print {
  * { margin: 0 !important; padding: 0 !important; }
  #controls,.footer,.footerarea{ display: none; }
  html,body {
    /*changing width to 100% causes huge overflow and wraP*/
    height:100%; 
    overflow: hidden;
    background: #FFF; 
    font-size: 9.5pt;
  }

  .template { width: auto; left:0; top:0; }
  img { width:100%; }
  li { margin: 0 0 10px 20px !important;}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐