Bootstrap 3.x打印问题

06. September 2017 HTML5 0

问题描述:
使用Bootstrap 3.x的网页打印预览会出现a标签显示超链接,背景图片透明,字段全黑等问题,是bootstrap中设置了@media print相关属性导致。
源码如下:

 @media print {
 * {
 color: #000 !important;
 text-shadow: none !important;
 background: transparent !important;
 box-shadow: none !important;
 }
 a,
 a:visited {
 text-decoration: underline;
 }
 a[href]:after {
 content: " (" attr(href) ")";
 }
 abbr[title]:after {
 content: " (" attr(title) ")";
 }
 a[href^="javascript:"]:after,
 a[href^="#"]:after {
 content: "";
 }
 pre,
 blockquote {
 border: 1px solid #999;

page-break-inside: avoid;
 }
 thead {
 display: table-header-group;
 }
 tr,
 img {
 page-break-inside: avoid;
 }
 img {
 max-width: 100% !important;
 }
 p,
 h2,
 h3 {
 orphans: 3;
 widows: 3;
 }
 h2,
 h3 {
 page-break-after: avoid;
 }
 select {
 background: #fff !important;
 }
 .navbar {
 display: none;
 }
 .table td,
 .table th {
 background-color: #fff !important;
 }
 .btn > .caret,
 .dropup > .btn > .caret {
 border-top-color: #000 !important;
 }
 .label {
 border: 1px solid #000;
 }
 .table {
 border-collapse: collapse !important;
 }
 .table-bordered th,
 .table-bordered td {
 border: 1px solid #ddd !important;
 }
 }

去掉a[href]:after {content: ” (” attr(href) “)”;}里面的(” attr(href) “)可解决打印a标签显示url问题

去掉background: transparent !important;可解决背景图片透明问题。

去掉color: #000 !important;可解决字体全为黑色问题。

一般情况下,即可解决遇到的问题,有更多要求那就修改更多代码。O(∩_∩)O哈!