Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在CSS3中模拟多页文档_Html_Layout_Css_Multipage - Fatal编程技术网

Html 在CSS3中模拟多页文档

Html 在CSS3中模拟多页文档,html,layout,css,multipage,Html,Layout,Css,Multipage,我非常希望创建一个网页,当缩放级别很小时,它会显示带有页面边框的并排页面,具有与Microsoft Word或Acrobat Reader相同的外观 我不知道该怎么做,就是定义一个固定大小的paperborder并将内容放入其中(这将是数量可变的html块元素),并使这些元素从一个页面“流动”到另一个页面,使用适当的分页符创建所需的页面。这是为了模拟打印输出,用于快速设计研究原型 我的想法告诉我javascript是必要的,但是由于我对javascript的知识几乎为零,而且我几乎不想学习CSS

我非常希望创建一个网页,当缩放级别很小时,它会显示带有页面边框的并排页面,具有与Microsoft Word或Acrobat Reader相同的外观

我不知道该怎么做,就是定义一个固定大小的paperborder并将内容放入其中(这将是数量可变的html块元素),并使这些元素从一个页面“流动”到另一个页面,使用适当的分页符创建所需的页面。这是为了模拟打印输出,用于快速设计研究原型

我的想法告诉我javascript是必要的,但是由于我对javascript的知识几乎为零,而且我几乎不想学习CSS3布局技巧,所以最好使用纯CSS(尽管JS解决方案是一个不错的选择)

当前单页文档如下所示:

<!DOCTYPE html>
<html lang="pt-br" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="UTF-8" />
        <title>Relatório Html</title>
        <style type="text/css">
            html, body {
                margin:0;
                padding:0;
            }

            body {
                background-color: #aaa;
            }

            .paperpage {
                position: absolute;
                width: 600px;
                padding: 50px 30px 40px 30px;
                margin-left: -320px;
                left: 50%;
                top:10px;
                bottom:10px;
                background-color: white;
                box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
            }

            #innerpage {
                position: relative;
                margin: 0 auto;
                height: auto !important;
                min-height: 100%;
            }
        </style>
    </head>

    <body>
    <div class="paperpage">
        <div id="innerpage">
            <p>Some Content</p>
        </div>
    </div>
    </body>
</html>

雷拉托里奥酒店
html,正文{
保证金:0;
填充:0;
}
身体{
背景色:#aaa;
}
.纸张{
位置:绝对位置;
宽度:600px;
填充:50px 30px 40px 30px;
左边距:-320px;
左:50%;
顶部:10px;
底部:10px;
背景色:白色;
盒影:2px2p4pRGBA(0,0,0,0.8);
}
#内页{
位置:相对位置;
保证金:0自动;
高度:自动!重要;
最小高度:100%;
}
一些内容


这在CSS3甚至Javascript中都不容易做到。这样做的谷歌文档有自己的计算页面的引擎。这就是说,有一个非常早期的草案张贴,这将使这一点简单得多


这里的一般理论是在每次更新文本时测量文本的大小,并重新计算所需的页面,适当地填充内容。你可以想象,这不是世界上最容易做到的事情。有很多不同的方法来衡量内容和类似的事情,如果你真的很专注,投入其中,我建议您检查一下这里的许多问题,这些问题与javascript中的文本和元素大小测量有关。

实现这种显示的最佳方法是实际使用PDF格式的显示,并使用PDFObject显示,或者更好的是,直接在
元素中显示。由于浏览器将直接使用Adobe或内置的显示方法,因此它将与您所寻找的完全相同,而无需进行所有设计工作

例如:

<object
  data="/clients/<%= client.id %>/reports/print?preview=true" 
  type="application/pdf" width="100%" height="98%">
  <p>Your browser does not support embedded PDFs.</p>
</object>

您的浏览器不支持嵌入式PDF

我们所有的HTML到PDF转换都使用。它的使用相对简单,我们已经在各种各样的CSS技术的极其复杂的HTML文档上使用了它,并取得了巨大的成功

根据我的经验,与编写特定的CSS显示方法相比,这种方法可以节省更多的时间,只要您不需要在该视图中实际编辑文档

祝你好运