2010-05-03 147 views
63

我有一個圖形設計器的指令,用於爲某些元素指定「軌跡100」的佈局。在CSS letter-spacing是「跟蹤」的等效屬性。如何計算CSS字母間距v.s.排版中的「跟蹤」?

給定一個跟蹤值,你如何表示這是CSS的像素值?

+13

由於這是客戶,誰在爲工作付錢,我寧願不冒犯他們。 – 2010-05-04 15:26:02

+1

+1我剛剛被客戶問過同樣的事情。 – JMK 2014-01-18 20:36:02

+0

托盤(字母間距)可以安全地用ems表示。 – 2014-12-18 11:29:48

回答

60

您是否必須使用像素?我發現的轉換跟蹤值1000等於CSS中的1 em,因此在您的情況下,跟蹤100應該是0.1 em。

編輯

如果要從EM像素使用本網站PXtoEM.com。對於您的具體情況0.1 em轉換爲2px。然而,這是基於16pt字體,所以你將不得不調整你正在使用的特定字體大小。

+1

CSS中的其他所有內容都以像素爲單位。 – 2010-05-03 20:15:53

+0

@Diodeus:爲什麼?訪問者可以放大或縮小網頁,爲什麼不使用相對大小? – 2010-05-03 21:05:40

+5

@Diodeus:這裏是使用像素的問題。假設你有一個標準尺寸的字體(所以你沒有改變文本的大小)。現在給它一個10px的跟蹤。看起來不錯吧?現在讓我們將字體大小加倍,10px跟蹤將所有字母壓縮在一起。現在,您必須爲網頁中的每個尺寸更改指定一個新的跟蹤,其中使用EM進行相對尺寸調整可讓您爲網站上的所有字體指定一個跟蹤,並且會根據它應用於的字體。 – 2010-05-04 11:51:17

17

跟蹤轉換CSS「字母間距」

1 =1/1000 em 
100 =100/1000 em =0.10 em 
200 =200/1000 em =0.20 em 
+3

你是怎麼得到這些數字的?你有這樣的來源嗎? – 2015-04-17 17:40:41

16

TL; DR:除以1000跟蹤和使用em


一點背景大約letter-spacing總是應用於文本,所以我們應該使用相對長度單位。由於font-size可以由用戶或甚至級聯改變。

最佳文本的長度單位是em單位。

該單位表示元素的計算字體大小。如果在font-size屬性本身上使用 ,則表示元素的繼承的 字體大小。 CSS Lengths - Mozilla Developer Network

爲什麼跟蹤有什麼不同?

佈局應用程序(如Adobe的Photoshop,Illustrator和InDesign)在其跟蹤中使用em來處理該單位,因此對於設計人員來說這是一個更容易使用的數字。爲了便於他們它由1000

Indesign Tooltip: Tracking (in thousandths of an em

轉換跟蹤回整em

要做到這一點,我們只需要1000分的追蹤號碼得到該單元回到CSS可以使用的全部時間。

所以50/1000 = 0.05em

如果您正在使用SCSS並希望可重複使用的解決方案,CSS/SCSS

這樣計算下來 - 這裏是一個mixin。

// Convert illustrator, indesign and photoshop tracking into letter spacing. 

@function tracking($target){ 
    @return ($target/1000) * 1em; 
} 

@mixin tracking($target){ 
    letter-spacing: tracking($target); 
} 

要使用上述功能,您可以這樣做。

.example { 
    @include tracking(50); 
} 

或者,你可以只是沒有混入的數學直列所以它不太抽象:

.example{ 
    letter-spacing: #{(50/1000)}em; 
} 

對於上述例子的輸出是:

.example { 
    letter-spacing: 0.05em; 
} 

注: 你不應該使用基於像素的值,因爲像素是固定的,並打破wh en:

  1. 設計師更改字體大小。您需要重新計算 的值。

  2. 如果用戶更改他們的文字大小,您的網站設計將不會出現 根據需要或甚至難以閱讀。

此外,瀏覽器呈現不同於圖形設計程序的文本,因此,如果設計師在執行審閱時調整跟蹤/字母間距,不會感到驚訝。

1

對於大多數情況下,上述答案足夠準確,但是,正在使用的1000假設您的字體的Em尺寸爲1000,並非總是如此。我看過Em字體大小爲1024的字體,有些甚至是2048字體,這顯然會產生影響。

您可以通過在Font Forge之類的內容中打開字體的Em尺寸,然後選擇元素 - >字體信息菜單項和常規選項卡來查找字體的尺寸。