gpt4 book ai didi

html - 如何控制(在所有设备和浏览器上)字符是显示为表情符号版本还是显示为文本版本?

转载 作者:行者123 更新时间:2023-12-01 16:01:53 29 4
gpt4 key购买 nike

下面(和这个 live demo here )是生成这两个屏幕截图的HTML。第一个是Windows 10上的Chrome,第二个是iOS 12上的Chrome。

Win10 screenshot

请注意,Win 10正确地弄平了底线的所有字符并使它们变成红色。但是在最上面一行,它错误地没有使⚠️风格化,即使在其他地方(也在Win 10上),我看到它正确地以黄色显示,例如here

另请注意,iOS 12正确地设置了所有表情符号的样式,但没有使前2个字符变平并使之着色为红色(🌄︎💬︎)。

如何控制(在所有设备和浏览器上)字符是显示为表情符号版本还是显示为文本版本?

这不是其他问题的重复,因为(您可以从HTML中看到)我已经知道了文本变体选择器︎,并且我已经尝试了大量不同的本地字体(例如https://emojisymbols.com)和Google字体。

  • How to prevent Unicode characters from rendering as emoji in HTML from JavaScript?
  • https://apple.stackexchange.com/q/347993/53510
  • <link href="https://fonts.googleapis.com/css?family=Raleway&display=swap" rel="stylesheet">
    <div style='text-align: right; font-family: "Raleway"; margin: auto; display: inline-block; font-size: 22px;'>
    emojis &#127748;
    &#x1F4AC;
    &#x231b;
    &#9889;
    &#9888;
    <div style="color: red;">
    using text variation selector
    &#127748;&#xfe0e;
    &#x1F4AC;&#xfe0e;
    &#x231b;&#xfe0e;
    &#9889;&#xfe0e;
    &#9888;&#xfe0e;
    </div>
    </div>

    最佳答案

    简短的答案是您不能这样做。文本变体选择器通常不适用于所有字符。只有在标准中明确定义的序列才有效。实际上,在您的第一个示例中,Windows上的Chrome违反了标准,因为variation和no没有变体序列。没有Unicode机制可以阻止这些字符像表情符号那样运行。 <U+1F304, U+FE0E> 必须与单独的U+1F304一样显示

    数据文件emoji-variation-sequences.txt中列出了所有允许变体选择器的表情符号字符,并且我还在网站上策划了a visual table以便于访问。

    但是,即使对于那些确实支持变体选择器的字符,也无法保证它们会真正起作用。例如,较旧的Android手机无法将许多表情符号显示为文本样式,因为它们只是缺少必要的字体。

    如果要确保通用的文本样式显示,则需要提供自己的字体以覆盖系统默认值。

    旁注:虽然您的Windows示例错误地选择了变体选择器,但它实际上可以正确处理because,因为默认情况下该字符是文本样式,与所有其他字符不同。如果需要表情符号样式的显示,则必须附加表情符号变化选择器U+FE0F,如下所示:⚠️。 ⌛和⚡不需要(但可能),因为它们是表情符号默认值。

    关于html - 如何控制(在所有设备和浏览器上)字符是显示为表情符号版本还是显示为文本版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57015517/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com