JQuery结合CSS操作打印样式的方法


Posted in Javascript onDecember 24, 2013

本节内容:
JQuery、CSS操作打印样式。

一、添加打印样式

1,为屏幕显示和打印分别准备一个css文件,如下所示:
  用于屏幕显示的css:

<link rel="stylesheet" href="css/mainstylesheet.css" media="screen" />

用于打印的css:

<link rel="stylesheet" href="css/printstylesheet.css" media="print" />

2,import方式:

 <style type="text/css">
      @import url("css/printstylesheet.css") print;
  </style>

3,直接把屏幕显示样式和打印样式写在一个css文件中:

@media print {}{
    h1 {
      color: black;
    }
    h2 {}{
      color: gray;
    }
  }

@media print里面的内容只对打印出来的内容有效,之外的内容就是屏幕显示的样式。

其他:
创建一个不指定媒体类型的样式表通常很有用(或者利用media="all")。
当你准备好定义一些特别用于打印的规则时,可以只创建一个单独的样式表,使任何在打印时看起来不好的样式都失效。
使用这种方法的一个问题是必须确保打印机样式实际上确实覆盖了主样式表。可以使用!important.

二、打印样式注意事项:

1,打印样式中不推荐使用背景,因为浏览器默认情况下并不能打印出CSS中的背景内容,只有当浏览器被设置可以打印背景的情况下才能打印出背(ie的高级选项中可选)。
即使背景可以打印,它也可能盖过叠在它上面的任何文本。
  这是真的,尤其对于用彩色背景在显示器上强烈对比的文本,但是在黑白打印机上打印时会融合这一背景。
  background:none;去掉背景 图片和颜色。

可以利用background-color属性设置背景颜色为白色,像这样:background-color: white。
使用background的快捷法也可以获得相同的效果:background: white。因此像background: white;
这样的声明不仅设置了背景颜色为白色,而且消除了所有背景图片。利用这个background的快捷属性, 你实现了两个目的——设置了一个白色背景,并消除了图片——只用很少的代码。

2,如果需要在打印内容中出现图片,请在HTML代码中加入。

3,打印设置使用的是物理单位,所以尺寸最好不要用像素(px),可以用pt也可以用cm;

4,隐藏不需要的或是次要的内容。display:none;

5,尽量不要让内容浮动,有些浏览器打印浮动的div的过程中,会有一个麻烦,需要特别加以注意。
不要在打印的样式表中浮动的块,像这样:float: none;。

例如,基于Gecko的浏览器 (例如Netscap 6+),当用户用它来浏览一个打印输出页面时,它会截去浮动元素中的内容。
这些内容就不会被传送到打印机,下一个页面也不会有它的踪影??它消失了。

6,尽可能的在HTML代码中做好内容重要的先后次序,这样在打印样式中可以节省不少的麻烦。

7,打印与网页不一样,打印一定要留下白边,单位用英寸(in)。

8,要确保页面上的所有文本以黑色打印,就用通配选择器(见第54页)和!important来创建把每个 标签都格式化为黑色文本的单个样式:

  *{ color: ##000# !important }

9,在打印中显示链接url的信息:
利用一个高级的选择器:after和一个高级的CSS属性称作content,  把不在屏幕上显示的文本打印在一个样式元素的末端。

存在的问题:
after选择器和content属性技巧在Internet Explorer 6或更早的版本上不起作用(在IE 7上也不行)。
但是它在Firefox和Safari上的确可以,因此至少可以清楚地说明URL以便访问者可以使用他们的浏览器。

为了做到这点,给打印样式表添加一个样式,在每个链接后面打印出URL。你甚至可以添加其他文本项目比如圆括号,使它更好看些:
  a:after {content: " (" attr(href) ") ";}
   然而,这个CSS不区分外部或者内部的链接,因此它也打印出到达同一个网站其他页面的没用的相对文档链接:“访问主页(../../index. html)。”利用一点点CSS 3魔法,就可以强制这个样式只打印绝对的URL(即以http://开头的那些),像这样:

 a[href^="http://"]:after {content: " (" attr(href) ") ";}

10,给打印添加分页符:两种被广泛认可的属性是page-break-before和page-break-after。
  page-break-before告诉网页浏览器在一个指定样式之前插入一个分页符。利用page-break-before属性使图片打印在一张新页面上,并且适合整张页面。
  要使一个元素作为打印页上的最后一个项目显示,就给那个元素的样式添加:
  page-break-after: always。

创建两个类样式,以类似于.break_after和.break_before的名字来命名,像这样:

  .break_before { page-break-before: always; }
  .break_after { page-break-after: always; }

然后,可以选择性地把这些样式应用给应该打印在网页顶部或底部的元素。

三、测试打印样式
通常,不可能用打印机来进行测试,在IE浏览器菜单栏“文件”中有“打印预览”,可以通过这打印预览来做测试。

Javascript 相关文章推荐
该如何加载google-analytics(或其他第三方)的JS
May 13 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 Javascript
使用javascript做的一个随机点名程序
Feb 13 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
Nov 19 Javascript
Js apply方法详解
Feb 16 Javascript
微信小程序左滑删除效果的实现代码
Feb 20 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
Aug 16 Javascript
ES6学习笔记之map、set与数组、对象的对比
Mar 01 Javascript
深入学习JavaScript中的bom
May 27 Javascript
VueCli3.0中集成MockApi的方法示例
Jul 05 Javascript
利用JS响应式修改vue实现页面的input值
Sep 02 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
Dec 24 #Javascript
jquery自动切换tabs选项卡的具体实现
Dec 24 #Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 #Javascript
JS过滤url参数特殊字符的实现方法
Dec 24 #Javascript
JS控制图片等比例缩放的示例代码
Dec 24 #Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
Dec 24 #Javascript
js清除input中type等于file的值域(示例代码)
Dec 24 #Javascript
You might like
php经典算法集锦
2015/11/14 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
Jquery 切换不同图片示例代码
2013/12/05 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
js判断是否是手机页面
2017/03/17 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python 序列的方法总结
2016/10/18 Python
python编写弹球游戏的实现代码
2018/03/12 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
Python实战之制作天气查询软件
2019/05/14 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
2014光棍节单身联谊活动策划书
2014/10/10 职场文书
2014年接待工作总结
2014/11/26 职场文书
运动会宣传稿50字
2015/07/23 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
swagger如何返回map字段注释
2021/07/03 Java/Android
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL