【发布时间】:2014-08-27 17:07:13
【问题描述】:
现代浏览器,如 firefox、chrome 等。使用 text-transform:uppercase 将“ß”(Eszett 字符)转换为大写的“SS”,但 IE 不支持此操作。知道如何执行此操作。
【问题讨论】:
现代浏览器,如 firefox、chrome 等。使用 text-transform:uppercase 将“ß”(Eszett 字符)转换为大写的“SS”,但 IE 不支持此操作。知道如何执行此操作。
【问题讨论】:
如果浏览器以特定方式实现了text-transform: uppercase,则在 CSS 中您无能为力。
效果在 CSS 2.1 中定义模糊。特别是,它没有说明应该如何处理“ß”。 CSS3 文本(工作草案,因此正在进行中)表示使用 Unicode 中定义的默认大小写映射。他们指定“ß”映射到“SS”。但 IE 不这样做;在版本 7 之前,它将“ß”原封不动地保留为大写,从版本 8 开始,它会将其映射到“ẞ”U+1E9E LATIN CAPITAL LETTER SHARP S(这是一种不同的映射,现在在某种程度上在德国使用)。
因此,CSS 无法解决此问题。通常最好在服务器端或在创作程序中进行案例映射。也就是说,如果您想显示“STRASSE”,请写“STRASSE”而不是写“Straße”并尝试使用 CSS 将其大写。 (您真的想按原样或大写显示相同数据的情况实际上很少见。因此,将普通混合大小写文本作为内容并仅在呈现时将其大写的想法没有多大意义。)
如果由于某种原因无法做到这一点(例如,数据来自 Ajax 的外部资源),您可以使用简单的 JavaScript 在数据本身中执行替换。
【讨论】: