将Photoshop中设置的字母跟踪值转换为CSS中的等效字母间距

时间:2012-11-22 09:42:43

标签: css fonts photoshop units-of-measurement letter-spacing

我目前正在建立一个PSD网站。大多数字体的字母跟踪为-25(<- AV->:我猜这是字母间距的符号?)。

我如何在CSS中获得相同的效果?我知道该属性是letter-spacing: X,但它没有占用百分比,-25px或pts将是一个巨大的数字!

4 个答案:

答案 0 :(得分:21)

在Photoshop中,字母间距称为字母跟踪,特别是每个文字字母之间的空格。问题是Photoshop Letter Tracking不会将1:1转换为CSS中的Letter Spacing。

虽然很容易计算从Photoshop到CSS的转换。

将Photoshop Letter跟踪转换为CSS Letter-spacing

的公式

em公式

    X / 1000 = Y

X is the value of the letter-tracking in Photoshop
Y is the value in "em" to use in CSS

实施例

请考虑以下示例:Photoshop的字母跟踪值为200 ..

200 / 1000 = 0.2

CSS中的结果是 0.2em

px公式

如果您更喜欢使用&#34; px&#34;公式的值是

    X * S / 1000 = P

X is equal to the letter-tracking value in Photoshop
S is the font-size in pixels
P is the resulted value in "px" to use in CSS

实施例

请考虑以下示例:Photoshop的字母跟踪值为200,字体大小值为10.

200 * 10 / 1000 = 2

CSS中的结果为 2px

答案 1 :(得分:10)

您可以使用em维度而不是px,从而调整相对于字体大小的间距(因此,Photoshop的25%大约是.25em)。

答案 2 :(得分:7)

在这样的背景下,无单位数通常意味着印刷单位只占em单位的一小部分。它通常被称为“单位”。此单位的值取决于字体,它表示为UPM(每个单位的单位)值。常见的UPM值为1,000,但Microsoft字体的值为2,048,其他值也会出现。 (文章UPM value of 1000 set in stone?

中详细介绍了此问题

假设UPM值为1,000,-25将映射到-0.025em。设置letter-spacing: -0.025em往往会产生相当小的影响:较长的文本行约为一个“i”。使用CSS获得的效果不应与PhotoShop相同; PhotoShop的渲染机制与浏览器的渲染机制不同。

答案 3 :(得分:2)

如果您的问题只是单位转换,则可以使用em代替px

虽然em允许使用十进制数字,但它并不会改变渲染精度。浏览器上未显示0.5px或同等精度 - 它将变为0或1px。仅仅因为屏幕不能显示半个像素,充其量只能通过消除锯齿来显示。

对于较小的字体,抗锯齿可能看起来比间距差。另一种选择是找到一个默认具有所需间距的Web字体。通过这种方式,您可以得到与您想要的类似的结果,但可能意味着更改字体。

CSS间距不如photoshop准确。一个原因是,Photoshop也可以进行打印 - 使用屏幕/像素分辨率,您必须使用像素精度。虽然从理论上讲,字母间距可以在缩放等方面变得更加准确,但我不知道任何实际上会以这种方式工作的实现。

如果正确的字母间距对您来说非常重要,您可以尝试使用SIFR比浏览器能够更准确地呈现字体间距 - 他们可能能够使用更改的抗锯齿。显然,如果字母间距是一个大问题,这只会有意义。