[英]Can I safely use unicode characters (e.g. accents) in CSS class names or ids?
[英]Line breaking behaviour of unicode characters (e.g. 🦄)?
以下所有內容都是一行,您應該看到不同的換行符
==============================🦄=================== ================================================== =======================================
..................................🦄............... .................................................. .................................................. .................................................. .......................................
==============================⚠️=================== ================================================== ================================================== ================================================== ===============================================
..................................⚠️............... .................................................. .................................................. .................................................. .................................................. .................................................. .......
在以下容器中的JSFiddle中重新創建:
div {
width: 200px;
display: block;
...
}
它與角色的屬性有關。 警告標志和等號是在換行符類別中Alphabetic
, Unicorn Face屬於Ideographic
, 完全停止屬於類別Infix_Numeric
。
如果我們參考UAX#14:Unicode換行算法 ,我們可以看到表意字符在前后提供了換行機會,因此線條可以自由地繞過它們。 同時, 字母字符應該“粘在一起”,因此不應出現換行符。 由於⚠是字母的,它會粘貼到等號上,當沒有更多的空間擴展時,線就會斷開。 然而,表意文字allows允許換行,所以文字一碰到獨角獸就會包裹,為等號留出更多的空間,這些空間不會破裂。
現在,至於為什么完全停止的行為與等號不同:中綴數字字符應該粘合到直接跟隨它們的任何數字字符。 由於這不是這種情況,因此適用另一條規則:
如果不在數字上下文中使用,則中綴分隔符是句末標點符號。 因此他們總是防止休息。
這意味着在🦄之后線不能斷開,因為下一個完全停止應該粘合到它,所以它下降到下一行的開頭。
請記住,大多數這些換行符類別都是可定制的。 它們是默認值,對於大多數應用程序可能非常有用,但如果更需要不同的行為,則可以覆蓋它們。 例如,在Firefox中,在完全停止和等號示例中,行在before之前斷開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.