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

后端 未结 8 1054
臣服心动
臣服心动 2020-11-29 08:14

I have some simple CSS:

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

It looks ok in the browser, but when I go to print it

8条回答
  •  一向
    一向 (楼主)
    2020-11-29 08:46

    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:

    Black on red

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

提交回复
热议问题