我有一个下一个问题-试图找到它与谷歌,但没有找到什么可以帮助我。我有一个大的HTML文件,我需要打印,以分隔页面我使用CSS break-after
。如何在页面中心打印一个元素,不仅要水平居中,还要垂直居中. HTML看起来像这样:
<!DOCTYPE html>
<html>
<head>
<style>
@media all {
body
{
text-align:left;
}
p.paragrpahs
{
text-align:center;
font-family:Arial,Helvetica,sans-serif;
font-size:32px;
font-weight:bold;
vertical-align: center;
}
.break_here
{
page-break-before:always;
}
}
</style>
</head>
<body>
*Tons of text*
<p class="break_here"><p class="paragrpahs">Some text</p><p class="break_here">
*Tons of text*
</body>
</html>
3条答案
按热度按时间xhv8bpkk1#
首先,它是
vertical-align: middle
,而不是vertical-align: center
,参见MDN - vertical-align。有一篇关于以CSS Tricks - Centering in the Unknown为中心的文章很不错。将其转换到示例中,必须首先设置
以及
然后添加所提到的"重影"元素
一个三个三个一个
这将使你的文本在整个页面上垂直居中,参见JSFiddle。当你使用
p.paragrpahs
(sic?)做其他事情时,你应该添加一个单独的vcenter
类或类似的类。不幸的是,对于较长的文本(超过一行),这种方法不起作用。如果文本较长,可以将文本换行到
span
元素中然后给这个
然后,这个
inline-block
span
将再次与重影(:before
)元素垂直对齐。参见更新的JSFiddle。
p3rjfoxz2#
这种
flex
方法对我很有效。在CSS中:
在HTML中:
在Firefox、Google Chrome、Internet Explorer和Microsoft Edge中进行了测试。
hi3rlvi23#
假设.paper_card是打印过程中最外层的样式化div,下面的CSS将强制每个样式化div为一页,拉伸它以适合打印页面(并调整纸张大小)。
请注意,您应该对所有内部元素使用VH大小调整,以使其缩放到各种纸张大小。