我正在开发一个使用泰语脚本的应用程序。泰语脚本中的许多元音写成最能描述为辅音上方的重音符号。
例如,在单词中:กึด
ก和ด都是辅音,但ึ是元音。我需要能够将元音设置为与辅音不同的颜色,但我不知道这在 HTML 中是否可行,因为我无法独立于辅音选择元音。
我确信这也适用于其他情况,但我找不到任何解决方案。
我正在开发一个使用泰语脚本的应用程序。泰语脚本中的许多元音写成最能描述为辅音上方的重音符号。
例如,在单词中:กึด
ก和ด都是辅音,但ึ是元音。我需要能够将元音设置为与辅音不同的颜色,但我不知道这在 HTML 中是否可行,因为我无法独立于辅音选择元音。
我确信这也适用于其他情况,但我找不到任何解决方案。
简短的回答:它不会工作。除了e100所说的,您可以尝试几种不同的方法,但都没有达到预期的效果。
这是标准的“让我们呈现为 HTML 实体并观察浏览器组合字形”示例文本:
让我们尝试只更改元音的颜色。IE9 呈现组合的字符,但使用第一个字符的颜色。有趣的是,当我们在 Chrome 中执行此操作时(我也假设 Safari,因为它基于 WebKit)- 字符没有组合。Chrome 将元音呈现为离散字符,可能是因为跨度破坏了其字符解析引擎。
我们可以尝试手动调整元音以将其定位在应有的位置,但不幸的是,字形在底部呈现“幽灵字符”,这看起来不正确。
我们可以尝试变得非常狡猾,而不是分裂角色。我们将在两个字符周围使用单个SPAN
,但使用 CSS 的:first-letter
伪元素选择器......只是发现它总是呈现为第一个字符的颜色。这种行为在 WebKit 和 Trident 中是相同的。
请记住,Presto 和 Gecko 都无法做到这一点。事实上,Gecko 在我们的“相对位置”尝试中做得更糟,因为它结合了字符,然后弄乱了边距,使两个辅音发生碰撞。这几乎涵盖了你所有的主要浏览器......真可惜。
我没有答案,但这个测试用例证明了这个问题,将它与拉丁字符的类似处理进行了比较。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<div>ก<span style='color: red'>ึ</span>ด</div>
<div>ก
<span style='color: red'>ึ</span>
ด
</div>
<div>x<span style='color: red;'>o</span>x</div>
<div>x
<span style='color: red;'>o</span>
x
</div>
</body>
</html>
我在 IE8 和 Chrome 中得到了不同的结果——它们都不像你想要的那样工作。这可能归结为浏览器实现。也许其他人可以以此为基础。