首頁 >web前端 >前端問答 >css px是什麼單位

css px是什麼單位

青灯夜游
青灯夜游原創
2021-12-29 15:27:295609瀏覽

在css中,px全名為pixel,中文意思為“像素”,是電腦系統的數位化影像長度單位,是一個相對長度單位,是相對於螢幕顯示器解析度而言的。典型的電腦顯示器的解析度是96DPI,也就是1像素為「1/96」英吋。

css px是什麼單位

本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

px是pixel的縮寫,是像素單位,也是為影像顯示的基本單位,譯自英文“pixel”,pix是英文單字picture的常用簡寫,加上英文單字“元素”element,就得到pixel,故「像素」表示「畫像元素」之意,有時也被稱為pel(picture element)。

px (pixel,像素):是一個虛擬長度單位,是電腦系統的數位化影像長度單位,如果px要換算成物理長度,需要指定精確度DPI(Dots Per Inch,每吋像素數) ,掃描列印時一般都有DPI可選。 Windows系統預設是96dpi,Apple系統預設是72dpi。

在CSS中,px是一個相對長度單位,是相對於螢幕顯示器解析度而言的。

  • 在同樣一個裝置上,每1個CSS像素所代表的物理像素是可以變化的(即CSS像素的第一方面的相對性);

  • 在不同的裝置之間,每1個CSS像素所代表的物理像素是可以變化的(即CSS像素的第二方面的相對性);

#不同的設備,其影像基本單位是不同的,例如顯示器的點距,可以認為是顯示器的物理像素。現在的液晶顯示器的點距一般在0.25mm到0.29mm之間。而印表機的墨點,也可以認為是印表機的實體像素,300DPI就是0.085mm,600DPI就是0.042mm。 

注意,我們通常所說的顯示器分辨率,其實是指桌面設定的分辨率,而不是顯示器的物理分辨率。只不過現在液晶顯示器成為主流,由於液晶的顯示原理與CRT不同,只有在桌面分辨率與物理分辨率一致的情況下,顯示效果最佳,所以現在我們的桌面分辨率幾乎總是與顯示器的物理分辨率一致了。 

依照CSS規範的定義,CSS中的px是相對長度,它相對的,是viewing device的解析度。這個viewing device,通常就是電腦顯示器。典型的電腦顯示器的解析度是96DPI,也就是1像素為1/96吋(實際上,假設我們的顯示器解析度都與物理解析度一致,而液晶點距其實是0.25mm到0.29mm之間,所以不太可能是正好1/96英寸,而只是接近)。 

一般來說,px就是對應裝置的實體像素,然而如果輸出裝置的解析度與電腦顯示器大不相同,輸出效果就會有問題。例如印表機輸出到紙張上,其解析度比電腦螢幕高許多,如果不縮放,直接使用裝置的實體像素,那電腦上的照片由600DPI的印表機打出來就比用顯示器看小了約6倍。 

所以CSS規定,在這種情況下,瀏覽器應該對像素值進行縮放調節,以保持閱讀體驗的大致一致。也就是要保持一定像素的長度在不同裝置輸出上看的大小總是差不多。 

怎麼確保這一點呢?直接按照設備物理像素的大小進行換算當然是一種方式,但是CSS考慮得更多,它建議,轉換應按照“參考像素”(reference pixel)來進行。 

眼睛看到的大小,取決於視覺角度。而可視角度取決於物體的實際大小以及物體與眼睛的距離。 10公尺遠處一個1公尺見方的東西,與1公尺遠處的10公分見方的東西,看上去的大小差不多是一樣的,所謂一葉障目不見泰山,講的就是這個常識。

因此CSS規範使用視角來定義“參考像素”,1參考像素即為從一臂之遙看分辨率為96DPI的設備輸出(即1英寸96點)時,1點(即1 /96吋)的視角。 

請注意這個差異——CSS規範定義的參考像素並不是1/96英寸,而是1/96英寸在一臂之遙的看起來的視角。通常認為常人臂長為28英寸,所以其視角可以計算出來是0.0213度。 (即(1/96)in / (28in * 2 * PI / 360deg) ) 

我們使用不同裝置輸出時,眼睛與裝置輸出的典型距離是不同的。例如電腦顯示器,通常是一臂之距,而看書和紙張時(對應於印表機的設備輸出),則通常會更近一些。看電視時則會更遠,例如一般建議是電視機螢幕對角線的2.5到3倍長-如果你是個42'彩電,那就差不多是3公尺遠。看電影的話……我就不知道多遠了,您自己量。

因此,1參考像素: 

對於電腦顯示器是0.26mm(即1/96英吋); 

對於雷射印表機是0.20mm(假設閱讀距離通常為55cm,即21吋); 

#########

而換算時,對於300DPI的印表機(即每個點是1/300吋),1px通常會四捨五入到3dots,也就是0.25mm左右;而對於600DPI的印表機,則可能會四捨五入到5dots,也就是0.21mm。 

綜上,px是一個相對單位,而且在特定裝置上總是一個近似值(原則是盡量接近參考像素)。 

然而,如果你把絕對單位理解為對輸出效果的絕對掌控,事情卻大相逕庭。就網頁輸出的最主要物件——電腦螢幕來說,px可被視為一個基準單位——與桌面解析度一致,如果是液晶屏,則幾乎總是與液晶屏物理解析度一致——也就是說網頁設計者設定的1px,就是「最終看到這個網頁的使用者的顯示器上的1個點距」!反倒是那些絕對單位,其實一點也不絕對。

因為絕對單位例如cm或pt,顯示在螢幕上時最後還是要換算為像素,而且這種換算不是按照像素的實際物理長度來換算的(瀏覽器不用知道,也不可能知道目前這台顯示器的1px物理長度到底是多少),而是依照桌面設定的DPI計算的。也就是說,網頁設計者指定某個字體是12pt(即1/6吋或4.2mm),實際上你量數螢幕,幾乎不可能是正好12pt,而只是接近12pt的16px(按照96DPI換算)而已。如果你的螢幕點距是0.29mm,則實際上是4.64mm或13.15pt。假如你把桌面改為大字體(120DPI),則最終12pt相當於20px,依照0.29mm點距,最終效果是16.44pt。 

過去,建議網頁設計者不要使用px,一個原因是基於使用者可以依照自己的需求調整桌面DPI,進而控制絕對長度的實際長度(繞口令啊)。 

然而這其實是可疑的。既然絕對長度的實際長度可以根據需要調節,沒有理由px這樣一個相對長度不能根據需要調節。就好像照片在實際列印時你當然可以根據需要縮放一樣,以px設定的字體和圖像在實際顯示時完全可以進行縮放——這時網頁設計者指定的1px就不再對應於用戶桌面的1px ,而是可能對應1.2px或1.5px或其他值。

過去瀏覽器的調節字體大小的選項只對絕對長度有效(相當於調節瀏覽器內部的DPI),對px無效,這只能說是過去瀏覽器的設計問題,並不是px的固有問題。現在瀏覽器都已經支援以px設定的字體的縮放了。像Firefox,使用者還可以選擇單單縮放字體,還是連圖片一塊兒縮放。所以全部使用px的「像素級精確設計」完全是可行的,也是我認為合理的設計方式。畢竟,CSS中的px本來就是要確保一致的閱讀體驗。至於是流式佈局還是固定佈局,是否能適應不同的分辨率,那是另一個話題,與是否使用px作為單位並沒有直接關聯。

(學習影片分享:css影片教學

以上是css px是什麼單位的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn