簡體   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