網頁打印樣式CSS


相信大多數的前端工程師都是處理顯示屏上面的設計,用到最多的計量單位就是px,但是有些時候,我們難免也會有打印的需求,比如一個電商平台的“物流配送打印單”,“打印訂單”等等可能都是需要從網友上打印出來的,這個時候如果還是按照自己以前寫網頁的思路寫打印單頁面,最后打印出來的效果會不是很理想。下面我們就來看看有什么注意的事項。

 

一、在說之前!我們先來理解兩個概念,一個是px,一個是pt

1、px就是表示pixel,像素,是屏幕上顯示數據的最基本的點;px是一個點,它不是自然界的長度單位,可以畫的很小,也可以很大。如果點很小,那畫面就清晰,稱它為“分辨率高”,反之,就是“分辨率低”。所以,“點”的大小是會“變”的,也稱為“相對長度”。
2、pt就是point,是印刷行業常用單位,等於1/72英寸,確切的說法是一個專用的印刷單位“磅”,以它是一個自然界標准的長度單位,也稱為“絕對長度”。

在網頁設計中,用戶的屏幕的基本單位是px,因此用px作為單位是最簡單也最容易理解的,而用pt作為單位也不過是通過了Windows的設置乘上了一個比率轉變成px再顯示。
如果使用Word和Photoshop的主要目的僅僅是為了輸出打印。使用pt就更方便,當打印到實體時,pt作為一個自然長度單位就方便實用了:比如Word中普通的文檔都用“宋體 9pt”,標題用“黑體 16pt”等等,無論電腦怎么設置,打印出來永遠就是這么大。
總結:
 px:pixel,像素,屏幕上顯示的最小單位,用於網頁設計,直觀方便;
  pt:point,是一個標准的長度單位,1pt=1/72英寸,用於印刷業,非常簡單易用;
  em:即%,在CSS中,1em=100%,是一個比率,結合CSS繼承關系使用,具有靈活性。
  PPI(DPI):pixel(dot)per inch,每英寸的像素(點)數,是一個率,表示了“清晰度”,“精度”
 
        
 PX和PT轉換的公式:
  以前在文章中介紹過PX和PT的轉換規則,pt=px乘以3/4。

如12px×3/4=9pt大小。

PX和em轉換的公式:

對於PX轉em的方法也類似,就是em=16乘以px,也就是說1.5em=1.5×16=24px

二、理解了上面的概念,我們再來具體看看怎么優化網頁打印樣式:
首先,我們可以准備2套樣式,一套正常的css網頁展示的樣式,另一套專門給打印的時候用的CSS樣式,只要用戶打印,就會通過媒體查詢自動用打印的專門樣式。這樣,既可以在瀏覽器很好展示效果,也不影響具體打印出來的效果。
//正常瀏覽器用的樣式
<link rel="stylesheet" type="text/css" media="screen" href="/css/styles.css" />
//專門打印用的樣式
<link rel="stylesheet" type="text/css" media="print" href="/css/print.css" />
 
        
其中media指定的屬性就是設備,顯示器上就是screen,打印機則是print,電視是tv,投影儀是projection。

通過為styles.css指定screen,就能確保styles.css包含的樣式只會對電腦屏幕使用,同樣的,把media屬性設為print就能確保print.css包含的樣式只在使用者打印頁面時使用. 

專門打印樣式中的一些優化:

(1)用點數指定大小

在打印樣式表里,用點數制定字體大小是件十分合理的事情.在這份打印樣式表中,首先就為<body>標簽定義基礎字體大小 -- 使用"點"單位.


body {

  font-family: "Times New Roman", serif;

  font-size: 12pt;

  }

比起用像素單位來說,這個應該更能想象12點字體會印多大,同時我們也選用serif字體,這種字體打印出來比較細致,而且比較容易閱讀.

(2)用毫米(mm)寫寬高

這時候,我們寫類似width,height,margin的時候就不能用PX了,要用mm,(因此必須要設計師設計一份以photoshop中以為單位的效果圖,然后切圖的時候就是有多寬就對應HTML中多少毫米)
(3)隱藏不必要的標簽節省墨水

#nav, #sidebar, #advertising, #search {

  display: none;

  }

通過在打印樣式表里設定display:none;我們就能使打印結果隱藏掉這些元素.

(4)去掉背景圖片和顏色
body {

  background: none;

  }
這個方法去掉其他標簽在屏幕樣式里指定的背景圖片,顏色.這樣做節省墨水,且讓打印結果更好閱讀

 三、打印樣式表注意事項:
1、打印樣式表中最好不要用背景圖片,因為打印機不能打印CSS中的背景。如要顯示圖片,請使用html插入到頁面中。
2、最好不要使用像素作為單位,因為打印樣式表要打印出來的會是實物,所以建議使用pt和cm。
3、隱藏掉不必要的內容。(@print div{display:none;})
4、打印樣式表中最好少用浮動屬性,因為它們會消失。
7、如果想要知道打印樣式表的效果如何,直接在瀏覽器上選擇打印預覽就可以了。
  歡迎加入大前端交流群!群號:277942610,VIP新群
 


免責聲明!

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



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