專為控制打印設計的CSS樣式


大多數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 規范


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM