Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I Make Firefox Print a Background-Color Style?

I have some simple CSS:

#someElement {     background-color:black;     color:white; } 

It looks ok in the browser, but when I go to print it in Firefox it comes out as black text on a white background. I imagine this is some sort of ink-saving feature, but is there any way around it?

like image 798
machineghost Avatar asked Apr 19 '09 00:04

machineghost


People also ask

How do I get my printer to Print background color?

Go to Word > Preferences . Under Output and Sharing, select Print. Under Print Options, select the Print background colors and images check box. Close the Print dialog box, and go to File > Print.


2 Answers

Its a browser setting. There is nothing you can do in your CSS. In Windows - File > Page Setup... > Print Background.

like image 150
Daniel A. White Avatar answered Nov 08 '22 14:11

Daniel A. White


I found a solution, it's a bit hacky, but with CSS pseudo elements you can create backgrounds using fat borders. Borders are printed even when "printing backgrounds" is off, just make them really thick! One note, Firefox sets all white font colors to black, so when you create a fake black background, Firefox still makes the text black, rendering the text invisible. Anyway here it is:

The HTML:

<div class="redBox">   <div class="content">Black on red</div> </div> 

The css:

.redBox {   /* o no, does not work with print */   background-color: red; }  @media print {   .redBox {      position: relative;      overflow: hidden; /* this might not work well in all situations */   }   .redBox:before {      content: '';      position: absolute;      top: 0;      right: 0;      left: 0;      bottom: 0;      /* and here it is, the background color */      border: 99999px red solid;      z-index: 0; /* was required in my situation */   }   .redBox * {     /* was required in my situation */     position: relative;     z-index: 1;   } } 
like image 37
timing Avatar answered Nov 08 '22 13:11

timing