![](/img/trans.png)
[英]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.