Reputation: 69
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
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