彩色变音符号和 unicode 行为

2024-02-14

我只是偶然发现这个关于着色变音符号的问题 https://stackoverflow.com/questions/23537441/how-to-display-accents-over-words-with-different-colors-in-html-css。任务是用除基本文本之外的另一种颜色来为变音符号着色,例如á呈现a蓝色和´红色的。我想我可以尝试一下,通过 unicode 组合标记来分离字母和变音符号,并通过在变音符号上添加另一种颜色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>

现在,定义了一个像这样的简单 CSS,

p { color:blue; }
span { color:red; }

我得到了以下非常出乎意料但很漂亮的结果:

这里发生了什么?我天真地猜测字体渲染算法更喜欢预渲染字符,例如ōõöřǒ,只要它们存在于字体中,就可以动态组合,例如p̄m̃d̈,将其回顾性地呈现为一个或两个单独的项目,然后仅在第二种情况下触发变音符号着色。 (请坦白地告诉我,这种解释完全是无稽之谈。)此外,这意味着为变音符号着色的方法实际上在非标准情况下有效。谁能解释这种行为?有没有办法对其他(完全蓝色)字母也强制执行此操作?这是一种“有趣”的问题,目前尚未与应用程序相关联,但它可能是一个值得学习的有趣案例。

我贴了一个fiddle https://jsfiddle.net/4wkj3xgj/这样你就可以玩弄它了。


RandomGuy32 提出的一种有效解决方案是

将组合字形连接器 (U+034F) 插入底座之间 字母和口音。这样字体渲染器就不会尝试 替换预先组合的字形,并将颜色应用于每个字形 字符分开。

我在fiddle https://jsfiddle.net/4wkj3xgj/2/(我的问题中提到的版本2)。我在每个基本字母后面直接放置了 U+034F,实际上这正如 RandomGuy32 所解释的那样工作。你在这里的代码块中看不到,所以我插入了一条注释来指示U+034F的位置:

o͏<!--U+034F--><span>̄

但是,这需要客户端或服务器端的渲染器用变音符号处理每个字母,然后将其分开并插入span和U+034F。当您不想将文本加倍时,这可能是一个解决方案(如基于 CSS 的解决方案中所建议的那样)上面提到的页面 https://stackoverflow.com/questions/23537441/how-to-display-accents-over-words-with-different-colors-in-html-css).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

彩色变音符号和 unicode 行为 的相关文章

  • CSS 选择器不是元素类型的子元素?

    我想要风格code不在里面的元素a tags 实现这一目标的最佳方法是什么 code not a code 似乎根本不起作用 至少在 Chrome 上 尽管它似乎应该 https developer mozilla org en docs
  • Bootstrap 4.1 中悬停时的下拉菜单

    我有一个网站 我在其中创建了下拉菜单引导程序4 1 https getbootstrap com docs 4 1 dist css bootstrap min css 此时 下拉菜单正在点击 我用来创建下拉列表的 HTML 代码是 div
  • 如何将表情符号水平居中?

    在非视网膜显示屏上 unicode 表情符号字符似乎溢出了其边界框 但在视网膜显示屏上 它仍保留在字符边界内 那么如何在视网膜和非视网膜显示屏上将表情符号水平居中在 div 中呢 非视网膜 Retina 这适用于视网膜屏幕 但在非视网膜显示
  • 在使用 jQuery 拖动时向元素添加 CSS 类

    是否可以在元素被拖动到特定区域时向其添加 CSS 类 并在元素被删除后替换该类 我并不是到处寻找这个功能 而是只在特定区域寻找这个功能 是的 这当然有可能 jQuery UI 提供了一些方便的选项和事件来执行此操作 对于初学者来说 可拖动元
  • 如何在iframe中插入html

    大家好 我需要在 iframe 中插入一个 html 字符串 如下所示 var html p body p jQuery popolaIframe click function parent indexIframe 0 documentEl
  • 非常基本的 JS 编码,是否有 SoundManager2?

    我想在我的网站上包含一个具有以下属性的音频 可能的视频播放器 必须可通过 div 通过 CSS 设计样式 可以读取所有ID3信息 可以从数据库中提取文件 可能是 GoDaddy 的 Easy Database 无闪光 可转移至智能手机等 我
  • 使 bootstrap popover 使用自定义 html 模板

    我正在使用输入组文本框 我需要 Bootstrap 3 弹出框才能工作 并且弹出框模板应由我定义和设计 所以我目前拥有的 html 是 div class row div class col sm 2 div class input gro
  • 如何使选择框水平和垂直居中

    我正在尝试将选择框水平和垂直居中 这是 jsfiddle http jsfiddle net j3r9Lp81 http jsfiddle net j3r9Lp81 CSS div currency text align center HT
  • 位置:粘性滚动仍在移动的元素

    我需要显示类似于表格的内容 其中第一列可以水平滚动 该列会粘滞一段时间 但是当您滚动太多时 它会开始与其余部分一起移动 wrapper width 250px overflow auto display flex flex directio
  • 如何检测浏览器中操作系统是否处于深色模式?

    如同 如何检测 OS X 是否处于深色模式 https stackoverflow com questions 25207077 how to detect if os x is in dark mode 仅适用于浏览器 有没有人发现是否有
  • MP4 视频无法在 Firefox 上播放

    我有一个小型家庭服务器 可以托管多个项目 其中包括一些 MP4 示例视频 我一直在使用一个简单的
  • 内容安全策略:页面设置阻止自行加载资源?

    我有基于 Java 的 Web 应用程序运行在Tomcat http en wikipedia org wiki Apache Tomcat6 我的应用程序在本地主机和端口 9001 上运行 为了使我的应用程序更加安全并降低风险XSS ht
  • 元素在主体内找不到足够的空间 - JavaScript 样式

    相关信息 该页面包含两个元素 An
  • 使用 jQuery 更改 SVG 元素的“xlink:href”属性

    我正在尝试使用单击事件更改 xlink href 属性 到目前为止它部分有效 这就是我正在做的 HTML a href class ui btn ui corner all ui shadow editIcon style text ali
  • 电子邮件正则表达式将如何处理新的 unicode 域?

    Since 2009年10月 互联网 名称指定公司和 Numbers ICANN 批准了创建 国家 地区代码顶级域名 ccTLD 在互联网上使用 母语 IDNA 标准 脚本 我很确定大多数网站当前使用的标准正则表达式不会将它们标记为有效 还
  • bootstrap css中垂直对齐缩略图?

    我认为这应该很简单 但我就是无法让它发挥作用 在 ASP NET MVC 中 我有一个如下所示的项目列表 div class row div class span12 ul class thumbnails foreach var film
  • javascript 中一次仅选中一个复选框

    I have 3复选框 我只想1一次选中的复选框 下面是我的 html 小提琴 JS小提琴 https jsfiddle net n03jLhqa 我想要这个工作在IE8还请建议如何做 这个怎么样 fiddle http jsfiddle
  • 隔离必需的字段验证器?

    我在页面上有两个搜索按钮 一个链接到下拉列表 另一个链接到带有文本框的下拉列表以获取更多搜索条件 我在所有上述控件上都需要现场验证器 当我从第一个下拉列表中选择某些内容并单击相应的搜索按钮时 文本框的字段验证器会触发 从而禁用第一个搜索按钮
  • Bootstrap - 为反向行模式创建移动自适应

    我想用 Bootstrap 创建一个反向效果 第一行 左边是文字 右边是图像 第二行 左边是图片 右边是文字 第三行 左边是文字 右边是图片 第四行 左边是图片 右边是文字 而且这种情况一直持续下去 它在大型设备上看起来非常漂亮 但当它在设
  • 具有相等宽度和高度 TD 的响应式表格

    如何创建每个单元格 TD 具有相同宽度和高度的响应式 HTML 表格 因此 当我调整浏览器窗口的大小或调整表格容器的大小时 表格将调整大小 但每个单元格将具有相同的高度和宽度 基金会不关心这个 当我用固定宽度和高度 以像素为单位 初始化 T

随机推荐