gpt4 book ai didi

HTML/CSS - 打印溢出到空白页面的内容

转载 作者:行者123 更新时间:2023-11-27 23:25:41 24 4
gpt4 key购买 nike

我正在尝试打印一个运输标签(4 英寸 x 6 英寸),它出现在我的应用程序的 Bootstrap 模式中。

这是我的打印媒体 CSS :

@media print {
body * {
visibility: hidden;
}
#print-content * {
visibility: visible;
height: auto;
width:auto;
max-width: 100%;
max-height: 100%;
}
.modal{
position: absolute;
left: 0;
top: 0;

}

@page{
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
margin-bottom: 0px;

}
}

这是我的带有运输标签图像的模态内容:

<div class="col-md-12 col-lg-12 col-xs-12 col-sm-12 " id="print-content">  
<img class="img-responsive" ng-if="labelLoaded" data-ng-src="data:image/jpeg;base64,{{myImage}}">
<img ng-hide="labelLoaded" ng-src="">
</div>

我的图像在我的 Chrome 浏览器的“打印预览”中显示正常 - 除了它显示 2 页而不是一页;第二页完全空白。

我花了一个小时试图找出问题所在 - 但没有任何进展。

我使用日本明信片作为纸张尺寸,因为它最接近运输标签。

我错过了什么?

最佳答案

我看到的问题是您正在设置:

body * {
visibility: hidden;
}

visibility: hidden; 与 display: none 等属性的区别在于,visibility 只是让元素对用户不可见,但它实际上仍在页面上并保持其尺寸和位置。我最大的猜测是模态下方的所有内容仍然存在,因此在打印版本中渗出到第 2 页。

一种方法是使用 display: none 代替,或者如果模态框放置在主要内容区域之外(我通常这样做),只需隐藏主要内容即可。

<body>
<main></main>
<div class="modal"></div>
</body>

CSS:

main {
display: none;
}

这是一个采用以下策略的测试:http://jerrylow.com/demo/stackoverflow/38731021.html .我所做的唯一区别是仅当模式打开时才打印目标。

@media print {
body.modal-open main {
display: none;
}
}

替代版本

如果您真的无法控制 dom,那么这里有一个版本可能适用于您所拥有的:http://jerrylow.com/demo/stackoverflow/38731021-3.html .这实际上只是使用 visibility: hidden 和以前一样,但因为它们仍然占据不止一页,所以我会将 font-size 降低到 0 并恢复模式的字体大小。如果你真的不能修改 dom,这是最后的手段。如果你的模态后面的内容有其他元素,比如图像占用空间,我不推荐这种方法。

@media print {
body.modal-open * {
font-size: 0;
visibility: hidden;
}

.modal.in,
.modal.in * {
font-size: 1.8rem;
visibility: visible;
}
}

关于HTML/CSS - 打印溢出到空白页面的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com