相信大多数的前端工程师都是处理显示屏上面的设计,用到最多的计量单位就是px,但是有些时候,我们难免也会有打印的需求,比如一个电商平台的“物流配送打印单”,“打印订单”等等可能都是需要从网友上打印出来的,这个时候如果还是按照自己以前写网页的思路写打印单页面,最后打印出来的效果会不是很理想。下面我们就来看看有什么注意的事项。

一、在说之前!我们先来理解两个概念,一个是px,一个是pt

1、px就是表示pixel,像素,是屏幕上显示数据的最基本的点;px是一个点,它不是自然界的长度单位,可以画的很小,也可以很大。如果点很小,那画面就清晰,称它为“分辨率高”,反之,就是“分辨率低”。所以,“点”的大小是会“变”的,也称为“相对长度”。
2、pt就是point,是印刷行业常用单位,等于1/72英寸,确切的说法是一个专用的印刷单位“磅”,以它是一个自然界标准的长度单位,也称为“绝对长度”。
在网页设计中,用户的屏幕的基本单位是px,因此用px作为单位是最简单也最容易理解的,而用pt作为单位也不过是通过了Windows的设置乘上了一个比率转变成px再显示。
如果使用Word和Photoshop的主要目的仅仅是为了输出打印。使用pt就更方便,当打印到实体时,pt作为一个自然长度单位就方便实用了:比如Word中普通的文档都用“宋体 9pt”,标题用“黑体 16pt”等等,无论电脑怎么设置,打印出来永远就是这么大。
总结:
 px:pixel,像素,屏幕上显示的最小单位,用于网页设计,直观方便;
  pt:point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
  em:即%,在CSS中,1em=100%,是一个比率,结合CSS继承关系使用,具有灵活性。
  PPI(DPI):pixel(dot)per inch,每英寸的像素(点)数,是一个率,表示了“清晰度”,“精度”

 PX和PT转换的公式:
  以前在文章中介绍过PX和PT的转换规则,pt=px乘以3/4。

  如12px×3/4=9pt大小。

  PX和em转换的公式:

  对于PX转em的方法也类似,就是em=16乘以px,也就是说1.5em=1.5×16=24px
二、理解了上面的概念,我们再来具体看看怎么优化网页打印样式:
首先,我们可以准备2套样式,一套正常的css网页展示的样式,另一套专门给打印的时候用的CSS样式,只要用户打印,就会通过媒体查询自动用打印的专门样式。这样,既可以在浏览器很好展示效果,也不影响具体打印出来的效果。
//正常浏览器用的样式
<link rel="stylesheet" type="text/css" media="screen" href="/css/styles.css" />
//专门打印用的样式
<link rel="stylesheet" type="text/css" media="print" href="/css/print.css" />

其中media指定的属性就是设备,显示器上就是screen,打印机则是print,电视是tv,投影仪是projection。

通过为styles.css指定screen,就能确保styles.css包含的样式只会对电脑屏幕使用,同样的,把media属性设为print就能确保print.css包含的样式只在使用者打印页面时使用.

专门打印样式中的一些优化:

(1)用点数指定大小

在打印样式表里,用点数制定字体大小是件十分合理的事情.在这份打印样式表中,首先就为<body>标签定义基础字体大小 -- 使用"点"单位.

body {

font-family: "Times New Roman", serif;

font-size: 12pt;

}

比起用像素单位来说,这个应该更能想象12点字体会印多大,同时我们也选用serif字体,这种字体打印出来比较细致,而且比较容易阅读.

(2)用毫米(mm)写宽高

这时候,我们写类似width,height,margin的时候就不能用PX了,要用mm,(因此必须要设计师设计一份以photoshop中以点为单位的效果图,然后切图的时候就是有多宽就对应HTML中多少毫米)
(3)隐藏不必要的标签节省墨水

#nav, #sidebar, #advertising, #search {

display: none;

}

通过在打印样式表里设定display:none;我们就能使打印结果隐藏掉这些元素.

(4)去掉背景图片和颜色
body {

  background: none;

  } 
这个方法去掉其他标签在屏幕样式里指定的背景图片,颜色.这样做节省墨水,且让打印结果更好阅读
 三、打印样式表注意事项:
1、打印样式表中最好不要用背景图片,因为打印机不能打印CSS中的背景。如要显示图片,请使用html插入到页面中。
2、最好不要使用像素作为单位,因为打印样式表要打印出来的会是实物,所以建议使用pt和cm。
3、隐藏掉不必要的内容。(@print div{display:none;})
4、打印样式表中最好少用浮动属性,因为它们会消失。
7、如果想要知道打印样式表的效果如何,直接在浏览器上选择打印预览就可以了。
  欢迎加入大前端交流群!群号:277942610,VIP新群
 

网页打印样式CSS的更多相关文章

  1. web的各种前端打印方法之CSS控制网页打印样式

    来源:http://www.jb51.net/web/70358.html CSS控制网页打印样式: 使用CSS控制打印样式,握刚刚使用时一塌糊涂,根本不知道CSS中的midia的作用是什么,问到别人 ...

  2. css设置网页打印样式

    有三种方法 1. 为屏幕显示和打印分别准备一个css文件,如下所示:  用于屏幕显示的css: <link rel="stylesheet" href="css/n ...

  3. CSS控制print打印样式

    来源:http://blog.csdn.net/pangni/article/details/6224533 一.添加打印样式 1. 为屏幕显示和打印分别准备一个css文件,如下所示:   用于屏幕显 ...

  4. 如何用css写打印样式

    打印样式 打印样式就是针对网页被打印时设置给文档的样式,由于打印时是显示在纸上,跟屏幕还是有区别的,对于有打印需求的网页往往需要设置专门的打印样式来适配页面. @media print 声明自己是打印 ...

  5. jquery 利用CSS 控制打印样式

    一.添加打印样式 1. 为屏幕显示和打印分别准备一个css文件,如下所示:  用于屏幕显示的css: <link rel="stylesheet" href="cs ...

  6. JQuery巧妙利用CSS操作打印样式

    一.添加打印样式 1. 为屏幕显示和打印分别准备一个css文件,如下所示:  用于屏幕显示的css: <link rel="stylesheet" href="cs ...

  7. html / css打印样式

    最近做公司后台系统,需要打印贴箱标签,按照正常打印A4纸的标准,测试的效果不是自己想要的,文字排版布局都乱了,查了一些资料,需要设置的东西我总结了一下: 显示器(screen)和打印机(printer ...

  8. HTML&CSS基础学习笔记1.28-给网页添加一个css样式

    CSS是什么? 当HTML配合CSS一起使用时,我们发现页面变得好看了很多.那么CSS到底是什么呢? CSS指层叠样式表 (Cascading Style Sheets),它主要是用于定义HTML标签 ...

  9. 从零开始学习html(六)开始学习CSS,为网页添加样式

    一.认识CSS样式 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ...

随机推荐

  1. 用EXCEL做快速傅立葉轉換_FFT in Excel

    转载来自:http://yufan-fansbook.blogspot.tw/2013/09/excel-fft-fast-fourier-transform02.html [Excel]-用EXCE ...

  2. mybatis 注解形式设置批量新增、批量更新数据

    1. 批量更新: @Update({"<script>" + "<foreach collection=\"smsConfigTemplate ...

  3. mysql5.7.18.1修改用户密码报错ERROR 1054 (42S22): Unknown column 'password' in 'field list'解决办法

    本意向修改一个用户的密码,网上搜到的命令为如下 mysql> update user set password=password(“新密码”) where user=”用户名”; 执行后报错 E ...

  4. <记录> axios 模拟表单提交数据

    ajax 可以通过 FormData 对象模拟表单提交数据 第一种方式:自定义FormData信息 //创建formData对象 var formData = new FormData(); //添加 ...

  5. 机器学习中的算法(2)-支持向量机(SVM)基础

    版权声明:本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gma ...

  6. 【原】The Linux Command Line - Workiing with commands

    ● type – Indicate how a command name is interpreted● which – Display which executable program will b ...

  7. 深入理解Java中的IO

    深入理解Java中的IO 引言:     对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务 < Thinking in Java >   本文的目录视图如下: ...

  8. mysql win10x64 免安装版 安装配置

    安装包下载或者 gaobo百度云/工具/开发工具/mysql-5.7.23-winx64.zip 第一步, 解压MySQL压缩包    将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是:  ...

  9. Tomcat9 在Windows中配置允许远程访问

    环境:Windows  Server 2019 Data Center+Tomcat 9 Tomcat在Windows中安装好了之后,默认只能从本机以http://localhost:8080的方式访 ...

  10. 模型介绍之FastText

    模型介绍一: 1. FastText原理及实践 前言----来源&特点 fastText是Facebook于2016年开源的一个词向量计算和文本分类工具,在学术上并没有太大创新.但是它的优点也 ...