我从图形设计师那里得到了一些布局的说明,该布局为某些元素指定了“ track 100”。在CSSletter-spacing
中,“跟踪”的等效属性。
给定用于跟踪的值,您如何将其表示为CSS值(以像素为单位)?
我从图形设计师那里得到了一些布局的说明,该布局为某些元素指定了“ track 100”。在CSSletter-spacing
中,“跟踪”的等效属性。
给定用于跟踪的值,您如何将其表示为CSS值(以像素为单位)?
Answers:
您必须使用像素吗?我发现转换是在CSS中跟踪值1000等于1 em,因此在您的情况下,跟踪100应该是0.1 em。
编辑
要从EM转换为像素,请使用此网站PXtoEM.com。对于您的特定情况,0.1 em转换为2px。但是,这是基于16pt字体的,因此您必须针对所使用的特定字体大小进行调整。
TL; DR:将跟踪结果除以1000,然后使用em
的
letter-spacing
文本总是使用一些背景知识,因此我们应该使用相对长度单位。由于font-size
可以由用户甚至通过级联改变。
文本的最佳长度em
单位是单位。
该单位表示计算出的元素的字体大小。如果在font-size属性本身上使用,它表示元素的继承的font-size。 CSS长度-Mozilla开发人员网络
为什么跟踪有所不同?
诸如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;
}
注意: 您不应使用基于像素的值,因为在以下情况下像素是固定的并且会断裂:
设计者更改字体大小。您将需要重新计算该值。
如果用户更改其文字大小,则您的网站设计将不会显示出来,甚至无法阅读。
此外,如果设计人员在审查实现时对跟踪/字母间距进行了调整,则浏览器将呈现与图形设计程序不同的文本,这不会感到惊讶。
在很大程度上,上述答案足够准确,但是,所使用的1000假定您的字体的Em大小为1000,但并非总是如此。我见过Em大小为1024的字体,甚至有2048的字体,这显然会产生影响。
您可以通过在Font Forge之类的东西中打开字体,然后选择Elements-> Font Info菜单项和General选项卡来找到一种字体的Em Size 。