繁体   English   中英

理解CSS字母间距:用0替换普通的默认值是否有效?

[英]Understanding CSS letter-spacing: is it valid to replace the default value of normal with 0?

根据此页面 ,CSS letter-spacing属性的默认值为normal

值得注意的是,非默认值被添加到默认值:

使用字母间距时最重要的一点是指定的值不会更改默认值,而是添加到浏览器应用的默认间距(基于字体度量)。 字母间距也支持负值,这将收紧文本的外观,而不是松散它。

根据这个定义, 0应该等于普通的默认值,因为0 + X = X.

1)使用0作为普通默认值的替代是否有效? (这是用于滑块实现。)

2)为什么0不是默认值? 为什么要引入另一个值(即正常 )?

对CodePen的这个测试还表明,值0实际上等于法线的默认值。

 .loose { letter-spacing: 2px; } .tight { letter-spacing: -1px; } .zero { letter-spacing: 0; } .normal { letter-spacing: normal; } 
 <p>This type has no additional letter-spacing applied.</p> <p class="loose">This type is letter-spaced loosely at <code>2px</code>.</p> <p class="tight">This type is letter-spaced tightly at <code>-1px</code></p> <p class="zero">This type is letter-spaced at <code>0</code></p> <p class="normal">This type is letter-spaced at <code>normal</code></p> 

两者都不完全相同 如果您检查当前的规格

正常

间距是当前字体的正常间距。 此值允许用户代理更改字符之间的空格以便对齐文本

然后

<length>

除了字符之间的默认空格外,此值还指示字符间空格。 值可能是负数,但可能存在特定于实现的限制。 用户代理可能不会进一步增加或减少字符间空间以证明文本的合理性。

在大多数情况下,它们将呈现相同但您可以阅读,用户代理不会同时处理两者。


下一级草案中的定义似乎略有改变,现在两者都是相同的。

由于遗留原因,计算的字母间距为零会产生正常的解析值(getComputedStyle()返回值)。

你也可以在这里阅读: https//github.com/w3c/csswg-drafts/issues/1484

CSS2用于处理不同于0的法线,因此需要进行不同的计算。 现在该规范对待它们是相同的......


我不知道所有浏览器是否已经实现了这个级别,但你很可能认为它们是相同的

根据Mozzila文档: https//developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing#Values

当前字体的正常字母间距。 与值0不同,此关键字允许用户代理更改字符之间的空格以便对齐文本。

似乎0更像是将其设置为默认值的硬值。 用户代理可以修改Normal。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM