我只是偶然发现了这个关于着色变音符号的问题。任务是用不同于基本文本的另一种颜色为变音符号着色,例如以蓝色和红色á呈现。我想我可以试一试,通过 unicode 组合标记将字母和变音符号分开,并通过在它周围放置一个来为变音符号应用另一种颜色,如下所示:a´span
<p>
p<span>? </span>
o<span>? </span>
m<span>? </span>
o<span>? </span>
d<span>? </span>
o<span>? </span>
r<span>? </span>
o<span>? </span>
</p>
Run Code Online (Sandbox Code Playgroud)
现在,定义了这样一个简单的 CSS,
p { color:blue; }
span { color:red; }
Run Code Online (Sandbox Code Playgroud)
我得到以下,相当出乎意料但美丽的结果:
这里发生了什么?我天真地猜测字体渲染算法更喜欢预先渲染的字符o?o?o?r?o?,只要它们存在于字体中,而不是动态组合的字符,例如,p?m?d?回顾性地将其渲染为一个或两个单独的项目,然后仅在第二个触发变音符号着色案件。(当这种解释完全是胡说八道时,请坦率地告诉我。)此外,这意味着为变音符号着色的方法令人惊讶地在非标准情况下确实有效。谁能解释这种行为?是否有办法对其他(完全蓝色)字母强制执行此操作?这是一种“有趣”的问题,目前尚未与应用程序相关联,但它可能是一个值得学习的有趣案例。
我放了一个小提琴,所以你可以玩弄它。
我正在使用以下脚本从文本中删除变音符号,我想知道是否有一种方法可以在 html 或 PHP 中为变音符号着色,而不是删除它们(示例是阿拉伯语,但这同样适用于希伯来语、法语、甚至英语..等)。
\nJavaScript 代码:
\n$(document).ready(function(){\n\n var bodyText = $(\'#page_content\').html();\n \n function replaceChars()\n {\n newBodyText = bodyText.replace(/\xd9\x8e/gi,\'\');\n newBodytext = newBodyText.replace(/\xd9\x8b/gi,\'\');\n newBodyText = newBodyText.replace(/\xd9\x8f/gi,\'\');\n newBodyText = newBodyText.replace(/\xd9\x8c/gi,\'\');\n newBodyText = newBodyText.replace(/`/gi,\'\');\n newBodyText = newBodyText.replace(/\xd9\x90/gi,\'\');\n newBodyText = newBodyText.replace(/\xd9\x8d/gi,\'\');\n newBodyText = newBodyText.replace(/\xd8\x8c/gi,\'\');\n newBodyText = newBodyText.replace(/\xd9\x92/gi,\'\');\n newBodyText = newBodyText.replace(/\xd9\x91/gi,\'\');\n }\n \n \n $(\'.testMe\').toggle(function() {\n \n replaceChars();\n \n $(\'#page_content\').html(newBodyText);\n $(\'#actionDiacritics\').html(\'Show\');\n }, function() {\n $(\'#page_content\').html(bodyText);\n $(\'#actionDiacritics\').html(\'Hide\');\n });\n\n});\n \nRun Code Online (Sandbox Code Playgroud)\n运行演示:http://jsfiddle.net/8jAL8/29/
\n输入:\xd9\x84\xd8\xa7\xd9\x8e\xd8\xaa\xd9\x8e\xd8\xaa\xd9\x8e\xd8\xb9\xd9\x8e\xd8\xac\xd9\x91\xd9\x8e \xd8\xa8\xd9\x8f\xd9\x88\xd8\xa7\xd9\x8c \xd9\x85\xd9\x90\xd9\x86\xd9\x92 \xd9\x87\xd8\xb0\xd9\x8e\xd8 \xa7:
\n\n所需输出的示例:
\n\n在 …