巧妙使用CSS创建可以打印的页面

摘要:
用CSS创建打印页面,不必为打印而专门建立一个HTML文件,可以节省一些体力,其前提是按“WEB标准”用CSS+DIV布局HTML页面。这时就可以体现出按“WEB标准”做页面的优势了,用CSS换个版式很容易。在打印样式中,CSS的float属性有时可能会引起一些麻烦,会造成打印页面缺失,所以尽量去除不必要块级显示。CSS中还有一个可以设置分页符的标签:“page-break-after”和“page-break-before”。因为我的节日页面,表格较多,所以就没有应用这个CSS,具体效果你自己试验吧。

用CSS创建打印页面,不必为打印而专门建立一个HTML文件,可以节省一些体力,其前提是按“WEB标准”用CSS+DIV布局HTML页面。

第一、在HTML页面加入为打印机设置的CSS文件

<link href="http://t.zoukankan.com/css/admin.css" rel="stylesheet" type="text/css" media="screen" />	
<link href="http://t.zoukankan.com/css/admin-print.css" rel="stylesheet" type="text/css" media="print" />

media="screen" ,是面向屏幕的;

media="print" ,是面向打印的;

第二、建立打印版本的页面,去除不必要的页面元素,如导航、侧栏、广告、版权等。这时就可以体现出按“WEB标准”做页面的优势了,用CSS换个版式很容易。

/* 隐藏不打印项 start */
h1 span { /* 副标题 */
display: none;
}
#sidebar {/* 侧栏 */
display: none;
}		
#content td.ads {/* 表格内广告 */
display: none;
}		
#content th.col2 span {/* 锚链接 */
display: none;
}		
#content #bottom-2 {/* 页尾表格打印 */
display: none;
}		
/* 隐藏不打印项 end */

第三、打印按钮函数,IE、Firefox均可正常打印。

<input type=button value="打 印 本 页" onclick="window.print()">

另外,还有一个本地版的打印页面,可以进行“打印设置”和“打印预览”,但因为此设置,网络打印需要调用IE浏览器一个控件,还需降低ActiveX控件安全,且只能在IE上运行,不实用。所以只贴一下调用代码,备份。

<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0> </OBJECT>
<input type=button value="打印预览" onclick=document.all.WebBrowser.ExecWB(7,1)>
<input type=button value="页面设置" onclick=document.all.WebBrowser.ExecWB(8,1)>
<input type=button value="打印本页" onclick=document.all.WebBrowser.ExecWB(6,1)>

第四、注意事项

在打印样式中,打印字体大小是以点(pt)来计的,屏幕上字体大小显示,象素(px)比点和英尺更合适。

在打印样式中,CSS的float属性有时可能会引起一些麻烦,会造成打印页面缺失,所以尽量去除不必要块级显示。

关于打印设置,自定义页眉、页脚,我查阅了一番资料,对此CSS和HTML无法控制,只能通过调用ActiveX控件来实现,但是这样做不安全。最好方法是,打印前,你自己点击浏览器菜单进行打印设置。

CSS中还有一个可以设置分页符的标签:“page-break-after”和“page-break-before”。因为我的节日页面,表格较多,所以就没有应用这个CSS,具体效果你自己试验吧。

免责声明:文章转载自《巧妙使用CSS创建可以打印的页面》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇浅谈Spring中JDK动态代理与CGLIB动态代理详析手游圈从业人员必须知道的行业术语下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Vue.js 源码分析(二十八) 高级应用 transition组件 详解

transition组件可以给任何元素和组件添加进入/离开过渡,但只能给单个组件实行过渡效果(多个元素可以用transition-group组件,下一节再讲),调用该内置组件时,可以传入如下特性:     name         用于自动生成CSS过渡类名        例如:name:'fade'将自动拓展为.fade-enter,.fade-ente...

在vue中使用animate.css

animate.css是一款前端动画库,相似的有velocity-animate 用法: 首先 npm install animate.css --save 然后在vue文件的script中引入: import $ from '../assets/js/jquery.js';//非必要 import animate from 'animate.css'...

css 高度自适应

对象height:100%并不能直接产生效果,是因为跟其父对象有关。 #center{height:100%;} 上面的css样式是无效的,不会产生任何效果。 需要改写: html,body{ margin:0px; height:100%;}#center{200px;height:100%;background-color:#666666...

layui 一行多列控件时使用table布局

当使用多列布局时,使用div+css布局感觉代码不好控制,使用table结构清晰,布局简洁,不用写一堆的css来定位,控制大小的。 例子: <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="w...

css中width和height默认值

width和height默认都是auto自动伸缩的,但不同的标签效果却不一样比如div默认是100%,通常不用写100%如果是table,如果div内的table没有设定100%,那就是最小值,以td为准,td没设宽度的话,就以td的内容自动撑开width;那这个div的width就是100%,table=td通常情况,各个标签的height默认是0,根据...

根据class显示或隐藏多个div

引用一下jquery,然后function放head中 function test(){ $(".1").css("display","none"); //隐藏class为1 的div //控制显示的话 $(".1").css("display","block"); //$(".2").css("display","none"); 隐藏clas...