user7887481
user7887481

Reputation: 69

How do I hide the navbar when trying to print the page

I am working on an application for school and made an invoice sheet that has a print option. When I click the button or do ctrl+p it shows the navbar in a very disorganized way. How would I hide the navbar completely?

This is an image how of it currently displays on the print screen. https://gyazo.com/9aeb5270764e8c9051a3bd78e2c42efb

I have tried using @media print with #navbar { display: none; and it still shows it. I could be just using it incorrectly. Also messing with the css styles to see if anything can be done, but I cannot figure it out. It doesn't show below because it didn't work for me.

This is the css code for that page.

<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>

This is the button code and method

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

I just need it to not show on this page. Also if possible for the buttons to not show as well.

EDIT: I changed @media to how it was originally

Upvotes: 2

Views: 3338

Answers (1)

ces_1094
ces_1094

Reputation: 151

There's an error in your @media query. You forgot to add in the and keyword. So here's what your media query should look like:

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

All your styles should now be correctly applied.

Upvotes: 2

Related Questions