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 相关文章推荐
JavaScript单元测试ABC
Apr 12 Javascript
AngularJS路由实现页面跳转实例
Mar 03 Javascript
js仿网易表单及时验证功能
Mar 07 Javascript
jquery仿微信聊天界面
May 06 jQuery
vue.js自定义组件directives的实例代码
Nov 09 Javascript
微信jssdk逻辑在vue中的运用详解
Nov 14 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
JavaScript的console命令使用实例
Dec 03 Javascript
详解jQuery中的prop()使用方法
Jan 05 jQuery
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 Javascript
Javascript执行流程细节原理解析
May 14 Javascript
微信小程序实现多图上传
Jun 19 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 和 COM
2006/10/09 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
php树型类实例
2014/12/05 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
python算法与数据结构之冒泡排序实例详解
2019/06/22 Python
如何使用python操作vmware
2019/07/27 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
python支持多线程的爬虫实例
2019/12/21 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
详解Python IO编程
2020/07/24 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
大学军训感言1000字
2014/02/25 职场文书
文明村镇申报材料
2014/05/06 职场文书
活动总结报告怎么写
2014/07/03 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL