2010-06-15 80 views
10
我用css来

仅打印页面的部分:CSS:隐藏的元素仍然占用空间在打印输出

body { 
visibility:hidden; 
    } 
    .print { 
    visibility:visible; 
    background-color: white; 
    margin: 0; 
    } 

我想打印才能正确隐藏在打印元件上方的部分输出,但它仍占用空间的面积。我通过制作一个长长的单词列表来测试这一点。在打印输出中,出现空白区域相同的空白区域,然后出现元素输出。此问题仅出现在Chrome和Mozilla上。我也测试了浏览器的保证金选项,这不是问题。

任何想法?

回答

17

想要display:none不是visibility:hidden。后者使元素不可见,但不会将其从文档流中移除。

+0

谢谢我的CSS很弱。我猜这是一个坏主意,显示:没有整个身体?我应该在网页上添加要打印的内容还是删除我不想要的内容? – Cosmin 2010-06-15 15:02:07

+0

我认为在'body'上显示:none'将是一个坏主意,但我从来没有尝试过!可能最好只在非打印元素上使用“display:none”(您可以在标记中为它们添加一个非打印类)。 – Skilldrick 2010-06-15 15:05:49

+0

听起来很好,谢谢。 – Cosmin 2010-06-15 15:14:03

1

使用display:none;因为您只想显示打印和身体的任何部分。

2

使用@media进行打印。例如:

@media print { 
    * {display: none;} /*or if you want only the body*/ body {display: none;} 
    .print {display: block;} 
} 

(只是粗略的例子的实际的样式表应该包括一个网页,而不是通配符的所有元件)

然后打印时样式表只用于,或打印预览。

-1

即使visibility:collapse;做到了! :)

+0

如果应用于非表格元素,“visibility:collapse”与“visibility:hidden”相同 – 2015-08-27 13:07:54

2

如果我们想要display:inline-blockdisplay:block伴随着可见性隐藏。

然后我们可以使用follwing css作为解决方法。

{ 
    visibility:hidden 
    width:0px; 
    height:0px 
} 
+0

我遇到了打印5个黑色页面的问题,因为主体刚刚隐藏。将高度设置为0完美无缺! – Auzy 2017-02-10 21:40:13