【问题标题】:Print Preview in Chrome gives changes div positions with CSS style "overflow:hidden"Chrome 中的打印预览使用 CSS 样式“溢出:隐藏”更改 div 位置
【发布时间】:2014-11-18 05:47:40
【问题描述】:

我为我的问题做了一个 jsFiddle: http://jsfiddle.net/g94xyhbn/1/

当我用 Chrome 打开打印预览(按打印按钮)并选择横向时,结果是下面的框似乎消失了。在我的 CSS 中,在 #outsideDiv 元素的媒体打印部分下,如果我像这样评论 overflow: hidden 行,

@media print
{
    #printButton
    {
        display:none;
    }
    #outsideDiv
    {
        left:0px;
        top:50px;
        /*overflow:hidden;*/
        height:900px;
    }
}

一切恢复正常。我使用 Chrome 版本 38.0.2125.122 m。此外,在纵向模式下,打印预览显示良好。

隐藏溢出与框消失有什么关系?我不明白发生了什么。

【问题讨论】:

    标签: html css google-chrome


    【解决方案1】:

    它完全按照它所说的那样做。

    因为您在#outsideDiv 上定义了heightwidth,所以您的CSS 会隐藏所有超出此范围的内容。请记住,像素在屏幕与页面之间的转换比例不同。一页通常为72 PPI(每英寸像素),而打印页通常为300 DPI(每英寸点数)。那里甚至还有单位转换(pixeldot),因为媒介是如此根本不同。

    因此,更适合#outsideDiv 大小的单位是incm,具体取决于您更喜欢使用哪个单位。

    不过,只要将overflow 设置为hidden,就不会在框的边界之外显示任何内容。

    或者,您可以在 print 媒体查询中显式覆盖 heightwidth 规则。这只会告诉 div 扩展到其内容的大小。小提琴中呈现的孤立用例没有真正的区别,但如果在打印的元素周围有元素,它将导致#outsideDiv 在 DOM 流中为自己正确保留空间。

    【讨论】:

    • 感谢您的回答。但是,它并没有解释为什么我们在纵向模式下看不到问题。另外,如果我像这样更改#outsideDiv 高度的媒体查询: height: 600px;然后在打印预览中,图像的底部清楚地穿过底部的一排框而不隐藏它们。为什么在高度设置为 900px 且仅在横向模式下会这样做?
    • 1) 我不知道您的打印预览看起来如何,因为我的打印预览很明显被切到了一半。 2)您正在更改视口的大小。当然,它会以不同的方式显示。考虑在移动设备上切换纵向和横向。
    猜你喜欢
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2013-05-22
    • 2013-05-21
    • 2016-03-24
    • 2017-05-04
    • 2013-11-18
    • 1970-01-01
    相关资源
    最近更新 更多