Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why website printed with Chrome is using mobile layout?

In Chrome, when printing to A4 paper, it is rendered with 568px media query width.

Try printing a responsive website such as The Verge or Bootstrap and you will see in the preview that it's using the mobile layout (see image below).

The Verge printed with Chrome

While in Firefox, it uses around 900px (see image below).

enter image description here

Is there a way to make it print Desktop layout?

I know I can work around this by changing my mobile breakpoint to 568px, but I need my website to break in 768px for iPad.

like image 630
hrsetyono Avatar asked Jan 26 '15 13:01

hrsetyono


2 Answers

The Verge isn't using a mobile layout for printing. It's using its own print layout. If you inspect the page whilst emulating a media of print you'll see a load of media="print" declarations. This is loaded in through the HTML:

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

If you want a website to look different when printing than it does on mobile, simply specify screen within your mobile media queries:

@media screen and (max-width: 768px) {
    ...
}

When printing, the screen declaration will be ignored, thus completely ignoring your mobile media query.

like image 184
James Donnelly Avatar answered Sep 18 '22 08:09

James Donnelly


Just add this to your style sheets

@media print {
  @page {
    size: 330mm 427mm;
    margin: 14mm;
  }
  .container {
    width: 1170px;
  }
}
like image 25
Gvs Akhil Avatar answered Sep 19 '22 08:09

Gvs Akhil