大多数Web设计师对打印控制还不是很熟悉,他们往往更迷恋像素,而不是打印机。在现实世界中,很多人依赖从网站上打印网页来参考:
在这个数字时代, 在一些特殊的场合,很多人手中还会拿着纸张。Web开发人员可以采取一些措施来弥补打印机和液晶屏之间的差距。

  为打印机而不是屏幕设计的样式

1
2
3
4
5
/*
样式将只应用于打印 */
@media
print

{
 
 
}

  注* 也可通单独的CSS文件, 设置link的 media="print" 属性来指定此样式专用于打印

1
<link
type="text/<span id="6_nwp" style="width: auto; height: auto; float: none;"><a id="6_nwl" href="http://cpro.baidu.com/cpro/ui/uijs.php?c=news&cf=1001&ch=0&di=128&fv=14&jk=9c3b21adef64e239&k=css&k0=css&kdi0=0&luki=6&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=39e264efad213b9c&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F5933%2Ehtml&urlid=0"
target="_blank" mpid="6" style="text-decoration: none;"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">css</span></a></span>" rel="stylesheet" href="css/print.css" media="print">

  为您的网站重塑整个CSS是没有必要的,整体而言,由打印继承默认样;仅对不同的需要加以限定。为了节省打印时的碳粉,大多数浏览器会自动反转颜色。为了达到最佳效果,应使色彩变化明显:

1
2
3
4
5
6
7
/*白纸黑字*/
@media
print {
   body
{
      color:
#000;
      background:
#fff;
   }
}

  我们不是在创建整个网页的截图,只是为了展现一个设计良好,可读性强的网站:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*去除背景图片,
节约笔黑 */
 
h1
{
   color:
#fff;
   background:
url(banner.jpg);
}
 
 
@media
print {
   h1
{
      color:
#000;
      background:
none;
   }
 
 
   nav,
aside {
      display:
none;
   }
}

  为了使打印机更具效率,应只显示主体内容,去除页眉页脚导航栏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@media
print {
   h1
{
      color:
#000;
      background:
none;
   }
 
 
   nav,
aside {
      display:
none;
   }
 
 
   body,
article {
      width:
100%;
      margin:
0;
      padding:
0;
   }
 
 
   @page
{
      margin:
2cm;
   }
}

  链接的处理

  在打印机上链接是看不到的,应对超链接进行扩展

1
2
3
4
5
6
7
8
9
10
11
12
/*在超链接后面添加带<http://XXX>的完整地址*/
@media
print {
   article
a {
      font-weight:
bolder;
      text-decoration:
none;
   }
 
 
   article
a[href^=http]:after {
      content:"
<" attr(href) "> ";
   }
}

  显示效果可能是这样的

  控制打印设置选项

  该@page规则允许您指定页面的各个方面。例如,你将要指定页面的尺寸。页边 距,页眉页脚等都是非常重要的。[很多浏览器均己支持]

  @PAGE规则纸张大小设置

  通过下面这条CSS您可以设置纸张大小,5.5英寸宽,8.5英寸高.

1
2
3
@page
{
  size:
5.5in 8.5in;
}

  你还可以通过别名控制纸张大小,如"A4"或“legal.”

1
2
3
@page
{
  size:
A4;
}

  你还可以控制打印方向, portrait: 纵向打印地,  landscape: 横向

1
2
3
@page
{
  size:
A4 landscape;
}

  PAGE模型 The Page Model

  在分页媒体格式模型中,文档被转移到一个或多个页面框。该页框是映射到一个矩形平面。这大致类似于css盒子模型。

  注* 支持浏览器较少

1
@page
{ width: 50em; }

  PAGE边距模型  Page-Margin Boxes

  在进一步讨论之前,我们应该了解的页面的盒子模型,因为它的行为跟如何在屏幕上的工作有些不同。

  页面模型定义了页面区域,然后划分了16个周边缘盒。可以控制页区域的大小和页区域的边缘和页面本身的端部之间的余量的尺寸。

  左右页边距

1
2
3
4
5
6
7
8
@page
:left {
  margin-left:
30cm;
}
 
 
@page
:right {
  margin-left:
4cm;
}

  下面的css将在底部左边显示标题,在右下角的网页计数器,并在右上角显示一章的标题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@page:right{
  @bottom-left
{
    margin:
10pt 0 30pt 0;
    border-top:
.25pt solid #666;
    content:
"Our Cats";
    font-size:
9pt;
    color:
#333;
  }
 
 
  @bottom-right
{
    margin:
10pt 0 30pt 0;
    border-top:
.25pt solid #666;
    content:
counter(page);
    font-size:
9pt;
  }
 
 
  @top-right
{
    content: 
string(doctitle);
    margin:
30pt 0 10pt 0;
    font-size:
9pt;
    color:
#333;
  }
}

  显示效果如下:

  注* 此文整理自:Tips And Tricks For Print Style Sheets 和 Designing
For Print With CSS
 和 css3 page 规范

专为控制打印设计的CSS样式的更多相关文章

  1. php部分:网页中报表的打印,并用CSS样式控制打印的部分;

    网页中报表的打印,是通过调用window对象中的print()方法实现打印功能的: 调用浏览器本身的打印功能实现打印 <a href="#" onclick="wi ...

  2. 要后台控制前台的的CSS样式,我们可以加入ASP.NET Literal 控件

    ASP.NET Literal 控件,用于在页面上显示文本.此文本是可编程的. 我用它来制作了 ) { this.LtdMemberPromotion7.Text = "<style ...

  3. Lodop打印设计、维护、预览、直接打印简单介绍

    四者的区别和联系:(其中PRINT_DESIGN打印设计是提供给开发人员的,另外三个可开放给用户)PRINT_DESIGN打印设计:辅助开发人员设计,图形化拖动插入修改等,设计完成后,生成代码拷贝到程 ...

  4. 超文本css样式换行

    之前有关于LODOP中纯文本换行的相关博文:Lodop纯文本英文-等符号自动换行问题纯文本的遇到不拆分的单词的时候,可以通过LODOP 语句设置允许标点溢出,且英文单词拆开.超文本需要通过css样式控 ...

  5. 样式的操作-访问外部定义的css样式

    JS对css的控制力非常强,甚至可以控制外部定义的css样式 ———————————————————————— <style>            .myclass{           ...

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

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

  7. Lodop打印控件传入css样式、看是否传入正确样式

    Lodop中可以传入页面存在的css样式,也可以是拼接后的新样式,例如本博客的其他博文:Lodop打印如何隐藏table某一列 需要打印的页面,样式不一定都是行内样式,style样式单独写在页面上,或 ...

  8. CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

    基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 ...

  9. 美丽的表格样式(使用CSS样式表控制表格样式)

    按照WEB2.0风格,设计了几个表格样式,希望大家喜欢. WEB2.0提倡使用div开布局,但不是要全然放弃使用表格,表格在数据展现方面还是不错的选择. 如今使用介绍使用CSS样式表来控制.美化表格的 ...

随机推荐

  1. java三大框架

    1定义 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.其中使用Struts作为系统的整体基础 ...

  2. Prime Time使用

    PrimeTime一般用作sign off的timing check,也可用在DC之后的netlist的timing analysis 一般的使用流程: 1) Read design data,--- ...

  3. WPF中Popup的几个问题

    要用popup控件来解决一些问题.就此带来了一批问题. 问题一. 在popup外任意位置点击时要能关闭popup,这个本来简单,只要加上StaysOpen=false就可以了.但我的popup中有个O ...

  4. zw.delphi不同版本程序运行速度测试

    { zw.delphi不同版本程序运行速度测试 delphi无论是开发,编译,还是运行,速度方面向来不差,笔者很少进行这种微粒度的优化,调试. 最近,因为项目需要,发现:同一个函数模块,差不多同样的代 ...

  5. .NET工程师技术进阶

    通常,一个人对技术的掌握程度可以分为精通.熟练.熟悉.了解,详细解析如下: 精通:能够掌握此技术的85%技术要点以上,使用此技术时间超过两年,并使用此技术成功实施5个以上的项目.能使用此技术优化性能或 ...

  6. linux工作知识点滴

    1. 要学会使用ldd *.so来查看动态库所依赖的库,以排除一些异常错误. 2. ldconfig是一个动态链接库管理命令,ldconfig命令的用途,主要是在默认搜索目录(/lib和/usr/li ...

  7. List 用法和实例(转载)

    写在粘贴复制前:英文的感觉也可以,也能看的懂,多看看英文资料没坏处的 Problem. You have questions about the List collection in the .NET ...

  8. js-sort数组排序

    婆婆妈妈,直上代码: <body> <div> sort()对数组排序,不开辟新的内存,对原有数组元素进行调换 </div> <div id="sh ...

  9. jquey知识点整理

    jquery选择器 1.元素选择器: $("p") 选取 <p> 元素. $("p.intro") 选取所有 class="intro&q ...

  10. JavaScript打印正倒直线

    做了一个作业,用JavaScript打印正倒直线,突然觉得自己还是逻辑有待加强训练啊 document.write("<h3>打印倒正金字塔直线</h3>" ...