我的网页上有一个链接来打印网页.但是,链接在打印输出中也是可见的.
当我点击打印链接时,是否有javascript或HTML代码会隐藏链接按钮?
例:
"Good Evening"
Print (click Here To Print)
Run Code Online (Sandbox Code Playgroud)
我想在打印文本"晚安"时隐藏这个"打印"标签."打印"标签不应显示在打印输出本身上.
Dio*_*ane 708
在样式表中添加:
@media print
{
.no-print, .no-print *
{
display: none !important;
}
}
Run Code Online (Sandbox Code Playgroud)
然后class='no-print'在HTML中添加(或将no-print类添加到现有的类语句中),不希望在打印版本中显示,例如按钮.
And*_*ech 167
最佳做法是使用专门用于打印的样式表,并将其media属性设置为print.
在其中,显示/隐藏要在纸张上打印的元素.
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
Run Code Online (Sandbox Code Playgroud)
Bij*_*jan 161
引导3有其自己的类此呼吁:
hidden-print
Run Code Online (Sandbox Code Playgroud)
它的定义如下:
@media print {
.hidden-print {
display: none !important;
}
}
Run Code Online (Sandbox Code Playgroud)
您不必自己定义它.
在Bootstrap 4中,这已改为:
.d-print-none
Run Code Online (Sandbox Code Playgroud)
Nes*_*ori 36
这是一个简单的解决方案
<style>
@media print{
.noprint{
display:none;
}
}
Run Code Online (Sandbox Code Playgroud)
这是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>
Run Code Online (Sandbox Code Playgroud)
use*_*549 12
CSS文件
@media print
{
#pager,
form,
.no-print
{
display: none !important;
height: 0;
}
.no-print, .no-print *{
display: none !important;
height: 0;
}
}
Run Code Online (Sandbox Code Playgroud)
HTML HEADER
<link href="/theme/css/ui/ui.print.css?version=x.x.x" media="print" rel="stylesheet" type="text/css" >
Run Code Online (Sandbox Code Playgroud)
元件
<div class="no-print"></div>
Run Code Online (Sandbox Code Playgroud)
Jus*_*ott 10
您可以将链接放在div中,然后在锚标记上使用JavaScript以在单击时隐藏div.示例(未经测试,可能需要调整,但您明白了):
<div id="printOption">
<a href="javascript:void();"
onclick="document.getElementById('printOption').style.visibility = 'hidden';
document.print();
return true;">
Print
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
缺点是,一旦点击,按钮就会消失,并且它们会在页面上丢失该选项(但总是有Ctrl + P).
更好的解决方案是创建一个打印样式表,并在该样式表中指定printOptionID 的隐藏状态(或者您称之为的任何内容).您可以在HTML的head部分执行此操作,并指定具有media属性的第二个样式表.
小智 6
最好的办法是创建页面的"仅打印"版本.
哦,等等......这不再是1999了.使用带有"display:none"的打印CSS.
@media print {
.no-print {
visibility: hidden;
}
}Run Code Online (Sandbox Code Playgroud)
<div class="no-print">
Nope
</div>
<div>
Yup
</div>Run Code Online (Sandbox Code Playgroud)
小智 5
diodus 接受的答案对我们中的一些人(如果不是所有人)来说不起作用。我仍然无法隐藏“打印此”按钮,以免出现在纸上。
Clint Pachl 通过添加调用 css 文件的小调整
media="screen, print"
Run Code Online (Sandbox Code Playgroud)
不仅仅是
media="screen"
Run Code Online (Sandbox Code Playgroud)
正在解决这个问题。因此,为了清楚起见,也因为很难看到 Clint Pachl 在评论中隐藏了额外的帮助。用户应在 css 文件中包含具有所需格式的“,print”。
<link rel="stylesheet" href="my_cssfile.css" media="screen, print"type="text/css">
Run Code Online (Sandbox Code Playgroud)
而不仅仅是默认的 media =“screen”。
<link rel="stylesheet" href="my_cssfile.css" media="screen" type="text/css">
Run Code Online (Sandbox Code Playgroud)
我认为这可以为每个人解决这个问题。
如果您的 Javascript 会干扰各个元素的样式属性,从而覆盖!important,我建议处理事件onbeforeprint和onafterprint。https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeprint