用于打印的页面设计
作者:zhusun 发布时间:2009-07-06 12:47:00
在网站的一些应用中需要提供用户直接打印页面的功能,最明显的就是电子优惠券,商家根据网站提供的模板输入内容,然后生成优惠券页面,用户打印这个页面即是优惠券。
当然最优的做法是根据这个页面生成一个图片文件,用户下载这个图片再去打印,打印的效果就不会受浏览器的设置而受影响打印出来的效果。
但如果由于一些原因,为了快速或者节约成本,不去将页面存为图片文件的操作,那么就只有直接将HTML页面直接打印下来,这样就需要在对页面的设计中有一些额外的要求,这里提出两个地方需要注意:
1.对style标签的属性设置:
<style type=”text/css” media=”print”>
这里表示该style内引入或者定义的样式属性仅仅在打印的时候使用,这里提醒一下,如果没有设置media属性,那么定义的样式将在浏览器和打印时都起效,所以建议将类似这样的样式放在所有常规样式之后。比如我们希望在打印出来的页面上有一行“打印与雅虎口碑网”,但在浏览器中并不现实:
<p class=”printTitle”>打印asp之家 aspxhome.com</p>
那么我们就可以在统一样式中设置.printTitle{display:none;},而在后面的media为”print”的样式中设置为.printTitle{display:block;}。在定义的打印样式并不是在打印时的优先级会高于常规定义的样式,所以再次建议将打印样式放在所有常规样式之后。
2.在页面打印的时候浏览器的设置会对打印的效果有影响,在IE中的“工具”–“Internet选项”–“高级”中有一个“打印背景颜色和图像”,类似的在Firefox中“文件”–“页面设置”中有一个“打印背景颜色和图像”,当这个选项被选中的时候,页面中的背景颜色和图片都可以打印出来(有些不标准的IE内核浏览器似乎有些问题,背景颜色可以打印出来,但是背景图片不行),如果没有选中则背景颜色和图片都无法打印出来,所以为了屏蔽用户不同的浏览器和浏览器设置,我建议两点,第一是在用背景色填充的区域作为分界的地方加上1px的边框,颜色和背景色一样,这样在浏览器中看不出来变化,而在打印的时候即使用户的设置导致背景色无法打印出来也可以有一个边框来作为分割,最大层的上保留了页面格局;第二是对所有必不可少的图片都使用<img/>标签,这样无论用户浏览器怎么设置都可以将这些图片打印出来,可能这样与平时一些页面设计方式不同,但为了统一打印的效果,也只要让步了。
我这里简单的提出了一些在实际运用中遇到的问题,如果大家还有什么新的问题和想法,可提出来共同谈论,在这里先抛砖了;
猜你喜欢
- 这里提供三种方法:1,使用正则表达式Function regKillHTML(str) &nb
- 根据"客服果果"的"十几行的超简日历组件"http://bbs.51js.com/viewthrea
- Web设计师可以使用HTML4和CSS2.1完成一些很酷的东西。我们可以在不使用陈旧的基于table布局的基础上完成文档逻辑结构并创建内容丰
- 虽然现在的GMail已经看不到这个效果,但之前那个可爱的深红色Loading仍然让许多人喜爱。我也将这款效果融入了我自己的WordPress
- 在使用操作XML文件时,我们可以使用Load方法直接加载xml文件即可,在ie和ff下通用。但是是XML字符串,则在两种浏览器下就会有所不同
- 关于数据库的逻辑设计,是一个很广泛的问题。本文主要针对开发应用中遇到在MS SQL Server上进行表设计时,对表的主键设计应注意的问题以
- Access爱好者以会VBa为荣。我觉得这不是好现象。vba只是vb的子集,有着很多限制,比如不支持继承,不支持指针,不支持子界类型等。使用
- 关于Mysql的触发器,基本上每个Mysql教程里都有讲到,但是我发现那些教程里讲的都是如何处理其他表的数据。在Mysql中写触发器操作本表
- “正则表达式”对象,我们就可以非常方便的对各种数据进行合法性的校验了。首先,让我们来了解一下究竟什么
- 通常,当一个页面有太多信息要显示,而一页塞又不下所有信。为了请求速度、美观以及其他的各种理由,分页就会被我们请过来。让我们的用户可以选择是否
- sql代码如下:CREATE PROCEDURE Proname //使用CREATE PROCED
- 赠送QQ秀流程是QQ秀商城关键流程之一,占了收入最直接的一部分。它的优化是后续商城流程优化的重要参考。OK,现在就用TA做例子,分享一下流程
- 很多年前,我们就可以轻易的从很多国营商场、火车车厢、饭馆旅馆中看到墙上挂的那个小本本-意见薄,作为经营方与顾客沟通的
- asp连接mysql的问题ASP连接Mysql数据库的问题。下了一个MySql 的ODBC驱动。做了个小测试。顺利通过。先记录下来,中间还有
- SQL Server的以前版本在跟踪对象相关性方面做的并不好。原因是所有的对象相关性都是由对象ID来跟踪的,这意味着对象一开始就必须存在。但
- 如何显示一个等待或欢迎信息? <% Response.Buffer = True %
- 今天老肥让我试试百度知道的新功能:插入地图。该功能需要登录才能操作,因此我意外的发现百度用户登录的弹出层变了。我很喜欢这个改进,利用TAB来
- 关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格。但是,你
- 技巧 16:如果页面需要很长时间才能完成,那么执行前使用 Response.IsClientConnected 如果用户性急,他们可能会在您
- 1、设置web.config文件。以下为引用的内容:<system.web> ...... <globalization