2

我正在使用:字体变体:小型大写字母;对于某些元素,例如 <h1>、<h2>、...

但是,在德语中,特殊字符“ß”(尖 s)没有等效的大写字母。(“ß”永远不会出现在单词的开头)。

德国正字法规定,在大写字母或小写大写字母的情况下,“ß”必须替换为“ss”。我想知道为什么浏览器不处理这个。

CSS 上的文本作者并不总是知道他的文本是否会以大写字母显示。所以我想使用一个 CSS 声明,用“ss”替换“ß”,但是我不相信这个声明存在。

有什么建议么?

4

1 回答 1

1

这是一个有趣的问题。在 2007 年,实际上有人提议引入 Unicode 字符的大写变体(http://std.dkuug.dk/jtc1/sc2/wg2/docs/N3227.pdf)。这通过并进入了 2008 年 Unicode 集,为 U+1E9E (ẞ):

ẞ // uppercase
ß // lowercase

然而,根本没有小型股的等价物。

“Capital Esszet”甚至没有用于世界上任何官方正字法中,当然也没有在任何拼音字母中使用它的小写字母形式。因此,您没有 Unicode 代码点。[来源]

一个hacky的解决方法

text-transform:uppercase将“ß”(常规 Eszett)转换为“SS”(两个 S 字符)。与此相反,text-transform:lowercase将“ẞ”(Unicode 大写)转换为“ß”(常规 Eszett)。

这允许我们font-variant:small-caps通过结合text-transform:uppercase减小的字体大小来创建一个 hacky 解决方法:

<p class="small-caps">abcß</p>
.small-caps {
    text-transform:uppercase;
    font-size:75%;
}

这是一个展示所有可能性的JSFiddle 演示。

所有的可能性

于 2013-06-12T09:12:21.070 回答