尝试打印页面时如何隐藏导航栏

时间:2019-04-30 20:32:35

标签: javascript css vue.js

我正在处理学校的申请,并制作了带有打印选项的发票单。当我单击按钮或执行ctrl + p时,它以非常混乱的方式显示导航栏。我将如何完全隐藏导航栏?

这是当前在打印屏幕上显示的图像。 https://gyazo.com/9aeb5270764e8c9051a3bd78e2c42efb

我尝试将@media print与#navbar {display:none;它仍然显示它。我可能只是使用不正确。还弄乱了css样式以查看是否可以做任何事情,但我无法弄清楚。它在下面没有显示,因为它对我不起作用。

这是该页面的CSS代码。

<style>
.invoice-box {
  max-width: 800px;
  margin: auto;
  padding: 30px;
  border: 1px solid #eee;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
  font-size: 16px;
  line-height: 24px;
  font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
  color: #555;
}

.invoice-box table {
  width: 100%;
  line-height: inherit;
  text-align: left;
}

.invoice-box table td {
  padding: 5px;
  vertical-align: top;
}

.invoice-box table tr td:nth-child(n + 2) {
  text-align: right;
}

.invoice-box table tr.top table td {
  padding-bottom: 20px;
}

.invoice-box table tr.top table td.title {
  font-size: 45px;
  line-height: 45px;
  color: #333;
}

.invoice-box table tr.information table td {
  padding-bottom: 40px;
}

.invoice-box table tr.heading td {
  background: #eee;
  border-bottom: 1px solid #ddd;
  font-weight: bold;
}

.invoice-box table tr.details td {
  padding-bottom: 20px;
}

.invoice-box table tr.item td {
  border-bottom: 1px solid #eee;
}

.invoice-box table tr.item.last td {
  border-bottom: none;
}

.invoice-box table tr.item input {
  padding-left: 5px;
}

.invoice-box table tr.item td:first-child input {
  margin-left: -5px;
  width: 100%;
}

.invoice-box table tr.total td:nth-child(2) {
  border-top: 2px solid #eee;
  font-weight: bold;
}

.invoice-box input[type="number"] {
  width: 60px;
}

@media only screen and (max-width: 600px) {
  .invoice-box table tr.top table td {
    width: 100%;
    display: block;
    text-align: center;
  }

  .invoice-box table tr.information table td {
    width: 100%;
    display: block;
    text-align: center;
  }
} 

/** RTL Stuff **/
.rtl {
  direction: rtl;
  font-family: Tahoma, "Helvetica Neue", "Helvetica", Helvetica, Arial,
    sans-serif;
}

.rtl table {
  text-align: right;
}

.rtl table tr td:nth-child(2) {
  text-align: left;
}
</style>

这是按钮代码和方法

      printWindow: function () {        
          window.print();
      }
 <button class ='btn' @click='printWindow()'>Print Invoice</button>

我只需要它不显示在此页面上。另外,如果可能的话,按钮可能也不会显示。

编辑:我将@media更改为原始格式

1 个答案:

答案 0 :(得分:1)

您的@media查询中存在错误。您忘记添加and关键字。因此,您的媒体查询如下所示:

@media print and (max-width: 600px){
   // your styles go here
}

您现在应该正确应用所有样式。