我目前正在根据 PSD 设计图建立一个网站。大多数字体都有 -25 的字母跟踪(<- AV->
:我猜这是字母间距的符号?)
我该如何在 CSS 中实现相同的效果?我知道属性是 letter-spacing: X
,但它不接受百分比,而 -25px 或 pt 将是一个巨大的数字!
我目前正在根据 PSD 设计图建立一个网站。大多数字体都有 -25 的字母跟踪(<- AV->
:我猜这是字母间距的符号?)
我该如何在 CSS 中实现相同的效果?我知道属性是 letter-spacing: X
,但它不接受百分比,而 -25px 或 pt 将是一个巨大的数字!
在Photoshop中,字母间距被称为字跟踪(Letter-tracking),它特指文本中每个字母之间的空间。问题是,Photoshop中的Letter Tracking与CSS中的Letter Spacing没有1:1的转换。
不过,从Photoshop到CSS的转换非常容易计算。
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
公式如果您更喜欢使用“px”值,则公式为
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。
em
维度代替px
,从而使间距相对于字体大小调整大小(因此Photoshop的25%大约是.25em
)。letter-spacing: -0.025em
往往效果较小:一个较长的文本行变短了一个“i”的长度。使用CSS获得的效果不应与PhotoShop相同;PhotoShop的呈现机制与浏览器不同。em
代替px
。em
允许使用小数,但它并不改变渲染精度。浏览器不会显示0.5px
或相当精度 - 它将变成0或1px。这是因为屏幕无法显示半个像素,最多只能通过抗锯齿来近似显示。对于较小的字体,抗锯齿可能看起来比间距更糟糕。另一个选择是找到一个具有默认所需间距的Web字体。这样,您就可以获得类似于您想要的结果,但可能需要更改字体。