Bootstrap 3.x打印预览背景色与文字显示异常的解决


Posted in Javascript onNovember 06, 2016

我首先测试了一段如下的代码,发现打印预览时的确无法显示背景色。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>Regonline</title>
 <link href="css/bootstrap.css" rel="stylesheet" />
 <link href="css/font-awesome.min.css" rel="stylesheet" />
</head>

<body>

 <style>

  .main{

   overflow: hidden;
   padding: 40px;
  }

  .one, .two, .three{

   float: left;

   height: 40px;
  }

  .one{

   width: 40%;
   background-color: red;
  }

  .two{

   width: 30%;
   background-color: green;
  }

  .three{

   width: 30%;
   background-color: pink;
  }


 </style>
  
  <div class="main">
   <div class="one"></div>
   <div class="two"></div>
   <div class="three"></div>
  </div>
</body>

</html>

比较奇怪的是,如果我删除bootstrap的样式引用,就可以正常打印预览了。想来必定是bootstrap3 设置了@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;
 }
}

 注意代码里面的 color:#000 !important; 以及 background-color:transparent !important;  。它表示打印时,页面中的文字都为黑色,并且背景色都设置为透明。因为有了这样的样式,我们的背景色就打印

不出来了。去掉这两段代码,一切OK!

值得一提的说:如果页面中有超链接,打印时会显示超链接的地址,这样比较难看。我们删除对应的样式即可。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
jquery多浏览器捕捉回车事件代码
Jun 22 Javascript
用Javascript实现Windows任务管理器的代码
Mar 27 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
js实现点击添加一个input节点
Dec 05 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
Apr 06 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
ES6新特性八:async函数用法实例详解
Apr 21 Javascript
vuejs选中当前样式active的实例
Aug 22 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
Jan 09 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
JS实现炫酷轮播图
Nov 15 Javascript
JavaScript实现简单的音乐播放器
Aug 14 Javascript
d3.js实现简单的网络拓扑图实例代码
Nov 06 #Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
Nov 16 #Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 #Javascript
xcode中获取js文件的路径方法(推荐)
Nov 05 #Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
Nov 05 #Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
Nov 05 #Javascript
JavaScript中绑定事件的三种方式及去除绑定
Nov 05 #Javascript
You might like
php中利用explode函数分割字符串到数组
2014/02/08 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
JavaScript实现世界各地时间显示
2020/09/07 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
python记录程序运行时间的三种方法
2017/07/14 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
Python list与NumPy array 区分详解
2019/11/06 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
写演讲稿要注意的六件事
2014/01/14 职场文书
简历自我评价模版
2014/01/31 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
合作经营协议书
2014/04/17 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
社会实践活动总结范文
2014/07/03 职场文书
驻村工作先进事迹
2014/08/14 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
实习推荐信格式模板
2015/03/27 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python