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 相关文章推荐
js时间日期和毫秒的相互转换
Feb 22 Javascript
js如何获取file控件的完整路径具体实现代码
May 15 Javascript
js防止表单重复提交的两种方法
Sep 30 Javascript
使用javascript为网页增加夜间模式
Jan 26 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
May 12 Javascript
javascript生成随机数的方法
May 16 Javascript
jQuery实现简单的文件上传进度条效果
Mar 26 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
详解js数组的完全随机排列算法
Dec 16 Javascript
Chrome调试折腾记之JS断点调试技巧
Sep 11 Javascript
Vue.js实现可编辑的表格
Dec 11 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 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网站备份程序代码分享
2011/06/10 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
Node.js模块加载详解
2014/08/16 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
Python常见数据结构详解
2014/07/24 Python
python查找目录下指定扩展名的文件实例
2015/04/01 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
Python中django学习心得
2017/12/06 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
如何提高JDBC的性能
2013/04/30 面试题
企业宣传口号
2014/06/12 职场文书
见习期个人总结
2015/03/05 职场文书
电视新闻稿
2015/07/17 职场文书
工作简历的自我评价
2019/05/16 职场文书
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL