CSS规则text-transform的效果是什么:如果HTML标签中包含的文本是意大利语,西班牙语,葡萄牙语,法语等,则大写(这些语言AFAIK不使用大写)每个单词的第一个字母,因为它专用于英语,而不是特定于这些语言环境。我想到的是您有一个多语言站点,可以在其中选择要从数据库中提取内容的语言,并在右上角的下拉菜单中将其显示在页面上。在这种情况下,由于CSS应该与语言相同且无关紧要,因此,例如,当开始标记为
<html lang =“ fr”>,<html lang =“ pt”>,<html lang =“ es”>,<html lang =“ it”>,等等。
代替
<html lang =“ zh-CN”>
?
恕我直言,这应该关闭“文本转换:大写”的行为,如果我错了,请纠正我,或者如果应该以其他方式实现,请仅通过用每个CSS文件覆盖基本CSS文件支持的语言。
感谢您对有关CSS的I18N问题的答复。
根据CSS 2.1的定义,text-transform: capitalize
“将每个单词的第一个字符大写;其他字符不受影响”。
没有对“单词”的严格定义,这是含糊的,但是对于“大写”,唯一可行的解释是它是Unicode标准对字符的大写映射。
该规范补充说:“每种情况下的实际转换都取决于书面语言。” 合理的解释是,这指的是某些与语言相关的案例映射异常。例如,在土耳其语中,“ i”映射到“İ”(上面有点的大写字母I),而不是通用的“ I”。
对于以拉丁字母书写的文本,“单词”通常是字母字符的最大序列,尽管可以断定诸如“免税”之类的连字单词是两个单词还是一个单词。无论如何,原则是每个单词都大写。这使得该设置变得毫无用处,因为几乎所有语言都没有这样的规则。用英语,当作品的标题用大写字母表示时,冠词和介词除外。但是CSS属性不知道这样的规则。
该定义的CSS文本模块级别3(一个最后呼叫工作草案)是较为明确的:用于‘利用’字‘“的定义’是UA-依赖; 建议[UAX29](但不是必需的)来确定此类单词边界。作者不应该期望“大写”遵循特定于语言的标题惯例(例如跳过英语文章)。”
这也意味着,我们无意遵守关于特定语言的规则,即有关作品标题和可比表达方式一般应大写的问题。大多数语言都没有这样的原则。
如果指定text-transform: capitalize
,则无论语言是什么,无论上下文是什么,无论什么词,都要求所有单词都大写。如果您认为这样会使设置变得毫无用处,那么您就得出了正确的结论。
适当的本地化在需要时将实际情况下的单词大写。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句