打印或转换为PDF时,CSS边框不会显示

时间:2017-12-21 12:30:15

标签: html css pdf

我想用带有圆角边框的元素打印这个HTML表格,但是一旦打印页面,CSS类似乎就不再显示了。有人可以帮忙吗?

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style type="text/css">
                .hashtag {
                    display: inline-block;
                    color: white;
                    font-size: 20px;
                    background-color: rgba(46, 200, 40, 0.5);
                    margin-left: 1px;
                    margin-right: 1px;
                    margin-top: 1px;
                    margin-bottom: 1px;
                    padding: 0.0em 0.5em;
                    border-radius: 1em;
                    text-indent: 0;
                    text-align: center;
                }
        </style>
    </head>
    <body>

    <tr>
        <td>
            <p class="hashtag" align="center">CSS</p>
            <p class="hashtag" align="center">WON'T</p>
            <p class="hashtag" align="center">PRINT</p>
        </td>
    </tr>
    </body>
    </html>

2 个答案:

答案 0 :(得分:4)

您在深色背景上使用白色文字。但是大多数浏览器默认情况下不会打印背景图像或背景颜色,这样会在您的情况下在无/白色背景上产生白色文本,即它将保持不可见。

可以打印背景颜色,但这是一个浏览器首选项/设置,只能由用户设置/更改,而不能通过CSS或网站中的任何其他代码。

答案 1 :(得分:4)

您正尝试在彩色背景上打印白色文字,但大多数浏览器默认情况下不会打印背景(如果是这样,那么这是因为用户更改了设置以启用它)。

您可以使用样式表中的@media print { ... }添加内容进行准备,这会更改应用的样式,以便更好地打印。有关示例,请参阅下面的代码段:

.hashtag {
  display: inline-block;
  color: white;
  font-size: 20px;
  background-color: rgba(46, 200, 40, 0.5);
  margin-left: 1px;
  margin-right: 1px;
  margin-top: 1px;
  margin-bottom: 1px;
  padding: 0.0em 0.5em;
  border-radius: 1em;
  text-indent: 0;
  text-align: center;
}

@media print {
  .hashtag {
    color: black;
    background-color: white;
    border: 1px solid black;
  }
  #btnPrint {
    display: none
  }
}
<p class="hashtag" align="center">CSS</p>
<p class="hashtag" align="center">WILL</p>
<p class="hashtag" align="center">PRINT (B/W)</p>

<button id="btnPrint" onclick="window.print()">Print</button>