当用户打印时,在我的网页上隐藏一个元素

时间:2011-04-05 07:36:07

标签: asp.net css

我的网站模板在打印时看起来相当不错,所以我没有单独的打印css。

然而,顶部有一个元素在打印时不需要,大约2英寸高,所以这在打印页面的顶部是浪费(这会使用户分散实际内容)< / p>

所以,我想要完成的是,当用户打印页面时,在页面顶部“隐藏”该元素(div)。

但到目前为止,我见过的唯一解决方案是top创建一个单独的css文档,然后在用户打印我的页面时使用。这听起来不错,但我现在必须维护2个不同的样式表,内容完全相同(除了那个div)吗?

或者是否可以在打印样式表中覆盖标准样式表? (所以我只需要在我的打印样式表中为那个div定义异常?)

希望这能解释我的问题......

2 个答案:

答案 0 :(得分:4)

如果您声明主样式表适用于所有媒体(browsers apply it to all by default):

<link rel="stylesheet" type="text/css" media="all" href="style.css">

然后添加打印样式表不应要求您在两个CSS文件中复制样式:

<link rel="stylesheet" type="text/css" media="all" href="style.css">
<link rel="stylesheet" type="text/css" media="print" href="print.css">

您要做的就是将特定于打印的样式添加到print.css

但是,如果您想保留单个样式表,并在该样式表中包含特定于打印的覆盖,则可以将规则放在打印介质规则中:

@media print {
    div.do-not-print {
        display: none;
    }
}

答案 1 :(得分:1)

我认为这就是你问的问题:overriding the standard css in your print style