2010-10-26 74 views
22

我需要在每個顯示器中準確放置25釐米寬(10英寸)的網站div。我如何做到這一點?以釐米(英寸)爲單位的Div寬度

+1

由於打印原因或在屏幕上? – 2010-10-26 11:37:18

+1

請注意,25釐米<> 10英寸,而25.40更接近(1釐米= 0.3907008英寸) – 2010-10-26 12:20:31

+0

我很好奇:你爲什麼要這麼做?例如,您是否在模仿真實生活物體的「實際尺寸」顯示? – 2010-10-26 12:31:54

回答

19

您可以直接在CSS中使用cm單位:

#mydiv { width: 25cm; } 

需要注意的是,正如其他人所指出的,結果仍取決於操作系統的顯示器尺寸的正確閱讀。

查看spec瞭解更多信息。

+6

剛剛給了這個嘗試 - 結果甚至沒有接近給定的數字。另外,**單位**不**後綴**。 – 2010-10-26 11:51:39

+0

那麼它在我的3yo華碩筆記本電腦上工作到毫米。我沒有任何統計數據,但我猜筆記本電腦通常會有更多的成功機會。 – Tomas 2010-10-26 11:54:09

+0

我仍然不認爲瀏覽器會正確呈現此內容,但值得一試。但是,您需要在各種平臺/顯示器組合上進行測試,然後才能確信其正確運行。 – Spudley 2010-10-26 11:58:46

11

我該怎麼做?

你不行。 更新:顯然,你可以在許多現代系統上:查看@Tomas的答案。不過,它似乎並不總是完全可靠的。

舊的回答:你不能。顯示器顯示不同數量的像素。從顯示器到顯示器的像素大小差異很大。

如果您知道顯示器尺寸,有幾種方法可以內插像素尺寸。這些信息有時可用於操作系統;但是,網站不可能掌握這些信息。

唯一的出路就是讓用戶進行校準。例如,要求用戶將A4紙張放在顯示器上,並使用可拖動的標尺來確定它所覆蓋的區域。使用這些信息,您可以計算出需要顯示25釐米的像素數量。

更新: @Tomas聲稱在他的答案中使用CSS cm值在屏幕上工作。在Chrome 7,IE6(!),IE7或更高版本中,播放TFT顯示器(1920x1080像素):21cm可以完美轉換爲A4紙的短邊。 Firefox 3.6。

雖然這似乎並不完全可靠:@Yi Jiang無法使用Ubuntu Linux在TFT上工作;而且,較舊的顯示器可能無法發送其尺寸信息,會是不可能的操作系統,以確定正確的尺寸。

下面是用於測試的簡單JSFiddle

+0

我不同意。在大多數系統中,操作系統可以正確檢測顯示器的大小,並且可以使用絕對的CSS值。 – Tomas 2010-10-26 11:48:30

+1

@Tomas我不相信瀏覽器正確地轉換了'cm'值,即使它們可以。但公平點,我會測試它 – 2010-10-26 11:54:49

+1

@Tomas:「可以檢測到顯示器尺寸」...以像素爲單位,它沒有直接映射到物理寬度單位。一個17英寸的屏幕可以顯示640x480以及1024x768;如何在網頁上運行代碼時獲得物理尺寸?(提示:您不需要) – Piskvor 2010-10-26 11:55:18

2

您需要掌握顯示器的分辨率和顯示器的dot pitch,才能計算出來。

給出這兩個值,你就可以計算出你需要的像素數。

但是,您無法從網站獲取此信息。

+0

無論如何,您無法從網站中獲取信息。在Windows程序中,它可能是poss ible(Windows 7似乎知道我的屏幕有多大)。 – 2010-10-26 11:40:17

+0

@Pekka:是的,桌面應用程序可以獲取這些數據,因爲它可以直接與顯示器和圖形卡通信。但瀏覽器不能,這就是問題所在。 – Spudley 2010-10-26 11:44:59

+0

@Spudley放鬆。我沒有批評克里斯的答案,只是添加了一個附註 – 2010-10-26 11:46:40

0

我相信,佈局引擎需要知道的三件事使這成爲可能:

  1. 屏幕分辨率
  2. DPI
  3. 物理顯示器尺寸

至於我知道,它不知道所有三個。

+2

以上兩項都不足以計算第三項。 – Tomas 2010-10-26 11:41:00

+0

DPI是每英寸點數。 1/DPI是每英寸英寸。單憑這一點就足以進行計算。所以他需要2.或者1.和3. – 2010-10-26 11:48:14

+1

Aaa和我錯了 - 新的顯示器向操作系統報告他們的DPI,而瀏覽器的確確實實在。 http://en.wikipedia.org/wiki/Extended_display_identification_data – Piskvor 2010-10-26 12:15:22

1

鑑於您在網站中聲明瞭<div>,我們知道您處於網絡瀏覽器環境中。

不幸的是,網絡瀏覽器沒有辦法找到屏幕的DPI。你可以找出屏幕分辨率是什麼,所以你會知道用戶是否有1024x760或其他什麼,但你永遠不會知道這些1024x768像素是顯示在iPhone屏幕或廣告牌上,還是其他任何東西。

對不起。

4

你不能。程序只能通過詢問EDID獲得屏幕的真實物理尺寸,因爲Windows API返回的值不可靠。程序可以獲得分辨率(例如1280 x 1024)和屏幕dpi的真實值,但瀏覽器本身無法做到這一點。

屏幕的「物理dpi」和「屏幕dpi」之間經常混淆。通過將屏幕的最大像素寬度除以物理(標尺)寬度(以英寸爲單位),可以獲得物理dpi(更合適的稱爲每英寸像素數)。每英寸的像素數由製造過程確定。屏幕dpi是用戶可以通過控制面板設置的數字,它的唯一目的是將英寸中的值轉換爲多個像素。用戶可設置的屏幕dpi值與物理dpi(像素每英寸)無關,只是一個默認值爲96的數字。關於96或120,沒有什麼魔力。屏幕像素數量=英寸數×屏幕dpi
就這麼簡單。

23英寸顯示器1920×1080「21英寸」轉換爲21英寸寬度的原因是因爲23英寸對角線的屏幕寬度爲20.05英寸,1920英寸像素像素密度是每英寸95.76像素。
屏幕dpi的默認值爲96,那麼對於一英寸:像素= 1 x 96 = 96像素
23英寸屏幕的像素密度爲每英寸95.76像素,與指定長度時獲得的像素數相匹配,默認的屏幕dpi爲96.

如果在控制面板中更改了屏幕dpi,或者更改了顯示器視頻分辨率,則21釐米將不匹配A4紙張的寬度。

+0

關於技術背景的很好的解釋!你是對的:它運行在Ubuntu Linux 10.04(英特爾顯卡)上,它只有一個1920x1200 24英寸外部顯示器,只是偶爾運行硬編碼的96 dpi。內部筆記本電腦顯示器的尺寸(高密度)是完全錯誤的 - 來自A4示例的矩形顯示太小。 – geekQ 2011-04-05 16:16:42

相關問題