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 相关文章推荐
IE下Ajax缓存问题的快速解决方法(get方式)
Jan 09 Javascript
js对图片base64编码字符串进行解码并输出图像示例
Mar 17 Javascript
JS继承用法实例分析
Feb 05 Javascript
实例讲解jquery与json的结合
Jan 07 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
Apr 29 Javascript
js 数字、字符串、布尔值的转换方法(必看)
Apr 07 Javascript
Bootstrap Table列宽拖动的方法
Aug 15 Javascript
vue-cli项目配置多环境的详细操作过程
Oct 30 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
微信小程序实现限制用户转发功能的实例代码
Feb 22 Javascript
基于js实现逐步显示文字输出代码实例
Apr 02 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
JavaScript 基本概念
2015/01/20 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
Python中的生成器和yield详细介绍
2015/01/09 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
证婚人搞笑证婚词
2014/01/10 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
调查研究项目计划书
2014/04/29 职场文书
市场营销专业自荐书
2014/06/10 职场文书
实训报告范文大全
2014/11/04 职场文书
运动员入场前导词
2015/07/20 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
Github 使用python对copilot做些简单使用测试
2022/04/14 Python