2

我正在尝试打印多种文档格式,但由于某种原因,在 Firefox 中,格式超出了第一页。我有浮动元素,它们在第一页中正确对齐,但在打印预览的第二页上中断。我在 jsfiddle 和下面发布了代码。如果您将代码复制到本地计算机,您可以尝试一下,看看我的意思。它在 Chrome、IE 10、9 和 safari 上运行良好。不幸的是不是火狐。我想知道这是一个 Firefox 错误,有转机吗?我可以使用一张桌子来解决问题,但我不想这样做。非常感谢您的帮助。

http://jsfiddle.net/2xpDP/1/

     .hide { display: none; }
     .left { float: left; }
     .right { float: right; }
     .text-center { text-align: center; }
     .text-left { text-align: left; }
     .text-right { text-align: right; }

     .clearfix:before, .clearfix:after { content: ""; display: table; }
     .clearfix:after { clear: both; }
     .clearfix { *zoom: 1; }
     .clear { clear: both; }
     .align-top { vertical-align: top; }

     div.page { margin: 0 auto; width: 720px; font-family: Helvetica; font-size: 12px;}
     .invoice h2 { color: #ccc; }
     .invoice-header-top { border-bottom: 2px solid #ccc; padding-bottom: 10px; }
     .invoice-header-top img { width: 300px; height: 125px; }
     .invoice-header-top .formatType { width: 239px; margin-left: 40px; text-align: left; }

     @media print {
        div.page {page-break-after: always;}
     }

    <div class="page clear clearfix">
        <div class="invoice clear clearfix">
            <div class="invoice-header-top clear clearfix">
                <div class="left">
                    <img src=" http://placehold.it/350x150"></div>
                <div class="left formatType">
                    <h2>INVOICE
                    </h2>
                </div>
                <div class="right text-left">
                    <b>Test Data</b>
                    <br>
                    Test Data<br>
                    Test Data<br>
                    Test Data<br>
                    Test Data</div>
            </div>
        </div>
    </div>
    <div class="page clearfix clear">
        <div class="invoice clearfix clear">
            <div class="invoice-header-top clear clearfix">
                <div class="left">
                    <img src=" http://placehold.it/350x150"></div>
                <div class="left formatType">
                    <h2>INVOICE
                    </h2>
                </div>
                <div class="right text-left company-info">
                <b>Test Data</b><br>
                    Test Data<br>
                    Test Data<br>
                    Test Data<br>
                    Test Data</div>
            </div>
        </div>
    </div>
4

1 回答 1

0

这是因为你的伪元素的 content 属性是空的。在这些引号中添加任何内容(除了空格键上的点击),您会看到您的 div 在 FF 中正确对齐(打印视图)。

IE<8 不支持 :before 和 :after 因此,如果您想在所有浏览器中进行相同的打印,我会摆脱它们。祝您好运!

于 2013-06-14T00:19:48.977 回答