我从一位图形设计师那里得到了一个指定一些元素的“track 100”布局的指示。在CSS中,“letter-spacing”是“tracking”的等效属性。
如果给定了"tracking"的值,如何将其表示为像素值的CSS属性?
你必须使用像素吗?我找到的转换方法是,跟踪值为1000等于CSS中的1em,所以在你的情况下,跟踪100应该是0.1em。
编辑
要从EM转换成像素,请使用这个网站 PXtoEM.com。对于你的特定情况,0.1em转换为2px。然而,这是基于16pt字体大小的,所以你需要根据你正在使用的特定字体大小进行调整。
简短总结:将跟踪值除以1000并使用em
单位。
letter-spacing
会始终应用于文本,因此我们应该使用相对长度单位。由于font-size
可能会被用户或级联更改,所以em
单元是文本的最佳长度单位。
此单位表示元素的计算字体大小。如果将其用于
font-size
属性本身,则表示元素的继承字体大小。CSS Lengths - Mozilla Developer Network
为什么跟踪值不同?
排版应用程序(例如Adobe的Photoshop、Illustrator和InDesign)在其跟踪中使用em
,但操作该单位使其更容易让设计师处理。为了使它更容易,他们将其乘以1000。
将跟踪值转换回整个em
要做到这一点,我们只需要将跟踪数字除以1000,将单位转换回CSS可使用的完整em
。
因此,50/1000 = 0.05em
。
在CSS/SCSS中计算
如果您正在使用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);
}
或者,您可以直接进行内联数学运算,而无需使用mixin,这样它就不会被抽象化:
.example{
letter-spacing: #{(50/1000)}em;
}
上面例子的输出结果将为:
.example {
letter-spacing: 0.05em;
}
注意:您不应该使用像素为基础的值,因为像素是固定的,在以下情况下会出现问题:
设计师更改字体大小时,您需要重新计算数值。
如果用户更改其文本大小,则您网站的设计将无法按预期显示,甚至可能无法阅读。
此外,浏览器对于文本的呈现方式与图形设计程序不同,因此在实现方案进行审查时,设计师可能会调整跟踪/字间距。
跟踪转化CSS中的“letter-spacing”
1 =1/1000 em
100 =100/1000 em =0.10 em
200 =200/1000 em =0.20 em