以前为打印排版颇费了几番周折。现在发现原来CSS就可以轻松搞定,太爽啦!这个就要从CSS的media类型说起了,当然我只说几个比较重要的,要不然又是文不对题了(嘿嘿……我就破毛病,喜欢到处瞎扯)
1、all,这个就是为全部文档使用CSS啦,如果不设置默认就是它了;
2、screen,这个就是显示在计算机机屏幕上所要用的CSS啦,我想这个和all差别不算太大(如果你不用其它的东东看电子文档的话);
3、print,放在压轴的位置说,自然说明它对我有多重要了。它是控制打印用的CSS啦!
哦,忘说syntax了,现在马上补上:<style media="all" />或者<style media="print" />然后在这个标签(tag)里定义CSS样式就好了,先看个简单了例子:
<style media="all">
p
{
font-size:12px;
color:red;
}
</style>
<style media="print">
p
{
font-size:24;
color:black;
}
</style>
<style media="screen">
p
{
font-size:36;
color:blue;
}
</style>
<p>This is a test!</p>
拷贝上面代码运行一下看看屏幕显示结果,然后再按[打印预览]看看是不是很爽啊?现在我们就可以开始网页打印旅程了。我以这个博客为例说下我的想法。打印排版工作和页面设计工作应该说没有质的区别,不过考虑到打印机和网页的种种的不同,还是要分别对待。你完全可以在页面上用华丽的页头吸引游客的眼球,也可以用素雅的背景图片在游客阅读时带来另一种意境,但是这些在打印时看来却是一件很愚蠢的事情哦~背景图片和多彩的页头都变黑白以后,会让用户皱眉头。所以说,如何用白纸黑字来展现风采也不是一件简单的事情啦!
这个博客的页头、导航和页脚三个部分在print.css里都是直接被排斥的!因为这三部分的内容在打印后将不能给用户带来任何更多的好处了。就拿导航条来说,打印以后就不能再被点击,也就不能指引用户到想去的地方,所以,可以直接抛掉,不放在被打印的行列!其余两个如是说。这个博客把main部分作为打印的中心(这也是页面显示的中心)内容,
清掉了backgroud属性,也就是保证白纸的本色作为底色,
body {
background: white;
font-size: 12pt;
}
文字(不包括超文本)一律改黑色,
#main {
width: auto;
margin: 0 5%;
padding: 0;
border: 0;
float: none !important;
color: black;
background: transparent none;
}
超文本则是棕色加下划线,
a:link, a:visited {
color: #520;
background: transparent;
font-weight: bold;
text-decoration: underline;
}
文字大小、页边距、边框等等的设置我就不在介绍。完成所述的整个排版过程也仅仅只用了几句CSS而已。真是太爽了!不过,好象不能让我修改控制打印的CSS。最后还是要补充一个重要内容,就是加上了黄色醒目的那句话。别小看这句,如果没有它很可能让你打印的时候很尴尬。内容一页显示不完,会被切掉,然后你在打印的结果里就再也找不到丢失的它了。所以,为了展现完美的你,最好还是千万加上这句话。
还有呢就是这里没有用的几个属性了,就在某个特定元素中添加断页的属性了,page-break-after和page-break-before,另外一个page-break-inside因为IE还不支持,这里就不谈了!我觉得应该在<div>标签里添上断页属性,至少也应该设为auto,
div {
page-break-after:auto;
}
这样才能把页面断的更好看一些,要不然打印出来的东西,就第一篇还像点样子,后面的都半半截截的,不爽!
好了大概要说的就这么多了,要是有什么要补充的,我就再写出来。XHTML+CSS+JS真的可以相当漂亮的完成页面的工作了。今天又看到Dan Shafer大师写的 "HTML Utopia: Designing Without Tables Using CSS" ,真是本悍书!但是我没钱钱买,只能看那几章FREE的了。如果哪位GGJJDDMM,有这本书的话,还望共享一下子^_^