打印网页时如何隐藏元素?

CSS

Jim猴子

2020-03-19

我的网页上有一个链接可以打印该网页。但是,该链接在打印输出本身中也是可见的。

单击打印链接时,是否存在会隐藏链接按钮的JavaScript或HTML代码?

例:

 "Good Evening"
 Print (click Here To Print)

我要在打印文本“ Good Evening”时隐藏该“打印”标签。“打印”标签不应显示在打印输出本身上。

第2265篇《打印网页时如何隐藏元素?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

8个回答
番长逆天 2020.03.19

如果您的Java语言会干扰单个元素的style属性,因此会被覆盖!important,则建议您处理事件onbeforeprintonafterprinthttps://developer.mozilla.org/zh-CN/docs/Web/API/WindowEventHandlers/onbeforeprint

JimEvaDavaid 2020.03.19

狄奥多斯接受的答案对我们中的某些人(如果不是所有人)都无效。我仍然无法隐藏我的“打印此按钮”以免出现在纸上。

克林特·帕克(Clint Pachl)通过添加对CSS文件的调用进行了一些小的调整

      media="screen, print" 

而不仅仅是

      media="screen"

正在解决这个问题。因此,为了清楚起见,并且因为不容易看到Clint Pachl在注释中隐藏了其他帮助。用户应在css文件中包含所需格式的“,print”。

     <link rel="stylesheet" href="my_cssfile.css" media="screen, print"type="text/css">

而不是仅默认媒体=“ screen”。

    <link rel="stylesheet" href="my_cssfile.css" media="screen" type="text/css">

我认为可以为每个人解决这个问题。

猴子小小Tony 2020.03.19

最好的办法是创建页面的“仅打印”版本。

哦,等等...这已经不是1999年了。使用带有“显示:无”的打印CSS。

Gil蛋蛋 2020.03.19

@media print {
  .no-print {
    visibility: hidden;
  }
}
<div class="no-print">
  Nope
</div>

<div>
  Yup
</div>

小胖A 2020.03.19

这是放置此CSS的简单解决方案

<style>
@media print{
   .noprint{
       display:none;
   }
}

这是HTML

<div class="noprint">
    element that need to be hidden when printing
</div>
<div class="noprint">
    element that need to be hidden when printing
</div>
Davaid前端神奇 2020.03.19

最佳实践是使用专门用于打印的样式表,并将其media属性设置print

在其中,显示/隐藏要在纸上打印的元素。

<link rel="stylesheet" type="text/css" href="print.css" media="print" />
达蒙神无伽罗 2020.03.19

引导3有自己的这个类叫做:

hidden-print

定义如下:

@media print {
  .hidden-print {
    display: none !important;
  }
}

您不必自己定义。


Bootstrap 4中,它已更改为:

.d-print-none
Pro逆天猿 2020.03.19

CSS文件

@media print
{
    #pager,
    form,
    .no-print
    {
        display: none !important;
        height: 0;
    }


    .no-print, .no-print *{
        display: none !important;
        height: 0;
    }
}

HTML标题

<link href="/theme/css/ui/ui.print.css?version=x.x.x" media="print" rel="stylesheet" type="text/css" >

元件

<div class="no-print"></div>

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android