在项目中,有一个需求时是需要打印产品页面。但是打印出来的版本和网页上的版本不太一致,有些图片不需要,网页上以tab选项卡显示的内容,都需要在打印页面中看到..等等

CSS针对这种需求,引入了一个@media 规则,@media规则允许你根据不同的media指定不同的css style.  @media print 指的就是print version的css样式

@media screen   //screen的样式
{
p.bodyCss {font-family: arial;}
} @media print //print的样式
{
p.bodyCss {font-family: serif;} } @media screen, print
{
p.bodyCss {font-size: 15pt}
}

在上面的例子中,对于p的bodyCss样式, 页面上(screen样式)呈现的和打印出来的(print样式)是不一样的字体,但是字体大小是一样的

你也可以专门为打印print样式,引用一个专门的外部样式

<link rel="stylesheet" type="text/css" media="print" href="css/printpage.css">

也可以使用在页面中直接包含css的形式

<style type="text/css" media="print">
.noprint {display = none}
</style> 网页上打印时不需要显示的部分加上 class="noprint"

有时,需要在打印的页面上,显示网页上折叠隐藏的内容,将内容完整的展示在纸上

<style type="text/css" media="print">
.print-show {display = block;}
</style>

设置好需要打印内容的css后,我们一般会在页面上增加一个button,button上面的内容为"Print this Page". 当点击这个button时,会打印这个页面。这个是通过javascript来实现的

<script type="text/javascript">

   function printpage()
{ window.print(); } </script>

有的时候,一个网页内容非常丰富, 有整个网站共享的layout,包括该网页中的头部,底部。而我们只需要打印这个网页中间的内容,这种时候我们可以通过JavaScript来实现

假定网页中间的内容,我们用一个div来包裹,这个div的Id为printDiv, 那么写一个JavaScript函数如下

<script type="text/javascript">

function printversion()
{ document.body.innerHTML = document.getElementById("printDiv").innerHTML;
window.print();
history.go(); } </script>

最新文章

  1. [Android Pro] Android异步任务处理之AsyncTaskLoader的使用
  2. 解决overflow:hidden在安卓微信页面没有效果的办法
  3. winserver2008 DNS 很详细
  4. Spring集成Hibernate映射文件的4种方式
  5. 重写setTimeout扩展参数
  6. 【POJ 2406】Power Strings(KMP循环节)
  7. [摘录]quarts :overview
  8. C#常用实例
  9. Js 操作Json
  10. 你的Jsp页面有黄&#215;么,有黄色问号么?Multiple annotations found at this line: - Invalid location of tag (form). - No
  11. google 搜索url详解
  12. 看来IT技术与军事技术都是相通的——都是对新事物极为敏感的领域
  13. Javascript 数字保留2位小数
  14. WebGL three.js学习笔记 纹理贴图模拟太阳系运转
  15. 扒一扒EOS的前世今生
  16. 爬虫之进阶 基于twisted实现自制简易scrapy框架(便于对scrapy源码的理解)
  17. [转]调整 VirtualBox 虚拟机的磁盘大小
  18. mysql常用运算符
  19. Python之随机森林实战
  20. Python自动化开发 - 字符编码、文件和集合

热门文章

  1. systemverilog FAQ(zz)
  2. ie6不认识
  3. 斯坦福机器学习视频笔记 Week2 多元线性回归 Linear Regression with Multiple Variables
  4. &lt;再看TCP/IP第一卷&gt;关于网络层及协议细节---IP协议(2)--移动IP及DHCP
  5. 使用 sqoop 将mysql数据导入到hdfs(import)
  6. 大话设计模式--代理模式 proxy
  7. Mysql的链接超时异常CommunicationsException
  8. angularjs $http提交数据探索
  9. HTML5学习记录——3
  10. maven 3.2.5 的安装及简单示例