SVG textPath 上的希伯来语文本仅在 Safari 中反转

2023-12-20

将希伯来语文本放在 SVG textPath 上时,仅在 Safari 中会反转(macOS ventura 13.2 Safari 16.3)。在 Firefox 和 Chrome 中都可以。不在路径上的文本总是可以的。此外,我可以使用 bidi-override 来反转 Firefox/Chrome 中的文本,但在 Safari 中并没有像我预期的那样取消反转反转的文本(即使它这样做了,也不会是跨浏览器解决方案) 。我还尝试使用各种 rtl/ltr css/html/svg dir/direction 设置以及 lang/xml:lang he。我当然可以提前为 Safari 反转文本字符串,但我正在寻找跨浏览器解决方案。

这是一个类似的问题,但作者没有解决特定于浏览器的问题(我认为当时它在 Chrome 中也被破坏了,所以他可以提前反转字符串),并且接受的答案没有提供具体解释也没有实际帮助:RTL 文本(希伯来语)在 SVG 路径上时显示反转 https://stackoverflow.com/questions/51085826/rtl-text-hebrew-shows-reversed-when-is-on-svg-path

Chrome: Chrome

Safari: Safari

<html dir="rtl" lang="he">
<svg viewBox="0 0 1000 1000" width=500" xmlns="http://www.w3.org/2000/svg">
<path
    id="MyPath1"
    fill="none"
    stroke="red"
    d="M 500, 120 m 0, -110 a 110,110 0 0,1 0,320 a 110,110 0 0,1 0,-320" />
<path
    id="MyPath2"
    fill="none"
    stroke="green"
    d="M 200, 120 m 0, -110 a 110,110 0 0,1 0,320 a 110,110 0 0,1 0,-320" />
    
  <text x='600' y='200'>
    text not on path is ok טקסט רגיל
  </text>
  <text>
    <textPath href="#MyPath1" text-anchor="end">hebrew textpath reversed only on safari טקסט על מסלול הפוך רק בספארי</x>
  </text>
  <text unicode-bidi="bidi-override" direction="ltr">
    <textPath href="#MyPath2">טקסט על מסלול הפוך תמיד hebrew textpath always reversed</textPath>
  </text>
</svg>

</html>

代码笔:https://codepen.io/eyaler/pen/VwBBOXz?editors=1011 https://codepen.io/eyaler/pen/VwBBOXz?editors=1011


知道了!由于 Safari 只是忽略 textPath 上的所有 bidi 内容,即逻辑方向和 bidi-override,所以我可以提前反转字符串并执行 unicode-bidi="bidi-override" Direction="ltr"!双重否定来拯救!这是一个跨浏览器的解决方案。

<html dir="rtl" lang="he">
<svg viewBox="0 0 1000 1000" width=500" xmlns="http://www.w3.org/2000/svg">
<path
    id="MyPath1"
    fill="none"
    stroke="red"
    d="M 500, 120 m 0, -110 a 110,110 0 0,1 0,320 a 110,110 0 0,1 0,-320" />
<path
    id="MyPath2"
    fill="none"
    stroke="green"
    d="M 200, 120 m 0, -110 a 110,110 0 0,1 0,320 a 110,110 0 0,1 0,-320" />
    
  <text x='600' y='200'>
    text not on path is ok טקסט רגיל
  </text>
  <text>
    <textPath href="#MyPath1" text-anchor="end">hebrew textpath reversed only on safari טקסט על מסלול הפוך רק בספארי</x>
  </text>
  <text unicode-bidi="bidi-override" direction="ltr">
    <textPath href="#MyPath2">רדסב גצומו רוקמב יתכפהש לולסמ לע טסקט hebrew textpath hardcoded reversed to display ok on all browsers</textPath>
  </text>
</svg>

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

SVG textPath 上的希伯来语文本仅在 Safari 中反转 的相关文章

  • 在文件输入上反应 PWA IOS/Safari 单击事件有时不打开菜单

    我们的 React PWA 应用程序有问题 我需要群体智能 从 2021 年 10 月开始 我们的部分 iOS 15 用户会出现以下问题 用户单击 触摸
  • 使用 inkscape 命令行将 svg 转换为 png 失败

    我觉得我一定做了一些愚蠢的错误 但我就是无法让它发挥作用 这是我从 cmd 运行的命令 inkscape com C path ship svg e export png C Path ship png without gui 作为回报 我
  • SVG 沿圆弧添加文本

    我正在尝试绘制 SVG 径向饼图 如下所述 色卡 https stackoverflow com a 18210763 1395178 现在我尝试将文本与圆弧一起添加到每个切片 我试图展示Text 1具有与 M 和 A 值完全相同的 x y
  • contenteditable 在 safari 中不起作用,但在 chrome 中起作用

    我有一个奇怪的问题 这在 chrome 中按预期工作 但在 safari 中它只会发光 但不会对按键输入做出反应 这是触发文本版本的方法 var namebloc event currentTarget find column filena
  • 使用 Selenium Webdriver 和 Safari

    我正在使用 Visual Studio Express 2012 开发 Selenium Webdriver C 我安装了最新的 safari 浏览器 并为 Apple 的扩展创建了开发人员证书 并且构建了扩展并安装了它 但即使在那之后 我
  • 将 SVG 下载为 PNG 图像

    我想将 HTML 页面中的 SVG 元素下载为 PNG 格式 我尝试了此操作 但下载了一个空白的 PNG 图像 如何将我的 HTML SVG 下载为 PNG 我用过这个https bl ocks org biovisualize 81878
  • 与 RTL 语言一起使用时字符串替换函数调用的顺序

    打电话时字符串替换 https developer mozilla org en US docs Web JavaScript Reference Global Objects String replace with a 替换功能我们能够检
  • 不明白为什么 Chrome/Safari 无法在此处获取 ScrollHeight

    我只是问了一个问题 为什么某些 js 代码不能 100 在 Chrome 和 Safari 中工作 但经过更多故障排除后 我想我发现这是我应该发布的问题 我有一个页面 其中有一个表单 该表单的目标是同一页面上的 iframe iframe
  • 动画 SVG 在页面加载之前不会显示动画

    我的网站包含大量广告 加载需要一段时间 确切地说 这并不是一个问题 但我注意到任何 SVG 动画都会立即绘制第一帧 但动画只有在页面上的所有加载完成后才会出现 SVG 动画通常指示旋转器 加载图标 有没有办法立即启动SVG动画 或者如果我将
  • typekit:在 Firefox 上失败,在 Chrome 和 Safari 上工作

    我可以嵌入一个typekit http typekit com 在 Chrome 和 Safari 上托管字体 但由于某些原因 不在 Firefox 上托管字体 我运行的是FF v9 0 1 但我认为这与版本无关 因为同样的事情发生在FF
  • 在 Android 中使用矢量图像在真实设备上出现问题。 SVG-android

    I use svg android jar from https github com pents90 svg android其工作正常 但仅在 Eclipse 中的模拟器设备上 啊啊啊啊 在真实设备上它只是空的imageView在屏幕上
  • 学习 SVG 的书籍/教程 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从右到左打印表格单元格

    我制作了一个表格 并希望第一个单元格从右侧开始 而不是默认从左侧开始 我尝试更改 CSS 中的 float 属性 但似乎没有帮助 这是代码 table border 0 width 100 cellspacing 0 align cente
  • 如何让文字方向从右向左

    我想在 TextView 中用 从右到左的语言 即阿拉伯语 编写文本 但我想让文字书写方向从右到左 gravity right仅将文本右对齐 我想从右到左调整文本 以使单词和数字按他输入的顺序出现在行中 如何 另一种巧妙的方法可以在旧版本的
  • Safari 10.0.1 未从 srcset 选择正确的图像

    Safari 无法正确处理我网站上某些图像的 srcset 并且完全忽略我在尺寸属性中设置的规则 如果您单击下面的链接并在 Safari 中查看它 您将看到顶部的图像以其原始尺寸显示 而不是我生成的尺寸 但是 在页面底部它有效吗 并已下载为
  • 在 SVG 中绘制空心形状

    我想在 SVG 中绘制一个中心被挖空的形状 我问这个问题是为了画一个中间有一个圆的圆here https stackoverflow com questions 8193675 draw a hollow circle in svg 819
  • SVG 文本在 IE 中消失,直到我单击它

    我在 Internet Explorer Edge 以 Win7 上的为准 中遇到与 SVG 创建和操作相关的问题 在我正在开发的应用程序中 我们使用 d3 生成 SVG 形式的图形 在 Chrome 和 Firefox 中 它们工作得很好
  • 渲染时 Flutter SVG 延迟

    我在行中显示 SVG 文件形式的图像和文本 由于某些原因 svg 图像的渲染速度比屏幕的其余部分慢 从而导致延迟 这不利于用户体验 这种延迟正常吗 我该怎么做才能使整个屏幕同时渲染 Row mainAxisAlignment MainAxi
  • Android 上的 SVG 支持

    Android 支持 SVG 吗 有什么例子吗 最完整的答案是这样的 Android 2 x 默认浏览器本身不支持 SVG Android 3 默认浏览器支持 SVG 要将 SVG 支持添加到 2 x 版本的平台 您有两个基本选择 安装功能
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其

随机推荐

  • 需要SDK版本 >=2.16.0 <3.0.0,版本解析失败

    当前的 Dart SDK 版本是 2 14 4 由于trackkit要求SDK版本 gt 2 16 0 我的 pubspec yaml environment sdk gt 2 16 0 lt 3 0 0 运行 flutter master
  • 在 Three.js 中高效渲染数以万计的可变大小/颜色/位置的球体?

    这个问题是从我的上一个问题中提炼出来的 我发现使用积分会导致问题 https stackoverflow com a 60306638 4749956 https stackoverflow com a 60306638 4749956 为
  • 在android中创建矩形边框进度条

    我想创建一个进度条 应如上图所示 有人有一个想法可以做到这一点 就像一个按钮 但边框就像一个进度条 Thanks 我在这个的帮助下解决了 如何创建 Android 钻石进度条 https stackoverflow com question
  • 在后台线程中运行处理程序消息

    我想在后台线程中运行一些 Runnable 我想使用Handler 因为它方便延迟 我的意思是 handler post runnable delay Where runnable应该运行在背景线 是否可以创建这样的Handler 某处是否
  • 通过快捷键激活扩展

    是否可以通过快捷键打开 启动 google chrome 扩展 例如 我想分配一个快捷方式 比如说 CTRL E打开我的扩展并启动它 以前有人这样做过吗 UPDATE
  • 让 clangd 了解编译器给出的宏

    我有两个从同一源 客户端和服务器 构建的可执行文件 并且它们是使用编译选项构建的 D CLIENT 0 D SERVER 1对于服务器和 D CLIENT 1 D SERVER 0为客户 如果我做类似的事情 if CLIENT Client
  • 如何设置 Paint.setTextSize() 的单位

    是否可以更改单位Paint setTextSize 据我所知 它是像素 但我喜欢在 DIP 中设置文本大小以支持多屏幕 我知道这个主题很旧并且已经得到解答 但我还想建议这段代码 int MY DIP VALUE 5 5dp int pixe
  • 如何在 Android 上实现选项卡之间的滑动?

    Android 4 0 中针对选项卡的关键设计建议之一是允许刷卡 http developer android com design patterns swipe views html between tabs在适当的情况下在它们之间进行
  • 为什么“echo strcmp('60', '100');”在php输出5中?

    PHP 关于这个函数的文档有点稀疏 我读过这个函数比较 ASCII 值 所以 echo strcmp hello hello outputs 0 as expected strings are equal echo hr echo strc
  • MPAndroidChart,如何删除小数百分比并且不显示低于10的百分比?

    我在用MPAndroid图表 https github com PhilJay MPAndroidChart我有两个问题 MPAndroid 饼图 去除小数百分比 饼图上不显示小于 10 的值 但显示切片 只是对于低于 10 的百分比不应显
  • PayPal CreateRecurringPaymentsProfile 账单频率

    我已经设法让我的网站与 paypal billing CreateRecurringPaymentsProfile 一起使用 但是我对以下字段感到困惑 计费周期和计费频率 如果我将第一个设置为每月 第二个设置为 12 希望它每月向我的客户收
  • 在 Area2D 中覆盖 KinematicBody2D 运动?

    I m trying to create a windy area within which the player would be pushed continuously to the left lt 到目前为止 这就是我想出的Windy
  • 将 Oracle 的时间戳转换为纪元中的秒数

    我在 Oracle 数据库的表中存储了一个时间戳 例如 01 03 12 16 13 33 000000000 我想将其转换为自 Unix Epoch 以来的秒数以在查询中返回 最简单的方法是什么 编辑 哦 我需要时间戳精度 不能依赖这里的
  • Swift:创建 UIImage 数组

    使用 Swift 我尝试为简单的动画创建 UIImage 对象数组 上下文帮助animationImages内容为 数组必须包含 UI Image 对象 我尝试按如下方式创建所述数组 但似乎无法获得正确的语法 var logoImages
  • 如何将 CSS 样式应用到元素?

    我是 CSS 新手 不是程序员 我了解什么是类 也了解什么是 div 但我似乎找不到的是如何在特定元素 例如我网站的 div 上设置样式 在你的 HTML 中 div class myClass Look at me div 在你的 CSS
  • 通过蓝牙将 OBDSim 连接到 Windows 上的 Torque

    我正在尝试在 Win7 上安装 OBDSim 但遇到了一些麻烦 我的最终目标是将 OBDSim 作为蓝牙 ELM327 OBDII 模拟器运行 并使用 Android 设备上的 Torque 应用程序连接到它 我在 youtube 上观看了
  • 如何调试从玉石打印对象

    如何调试从玉石打印对象 例如console log 在 JavaScript 中 您可以使用以下命令进行调试console log from jade像这样 div console log the object you want to lo
  • 如何在 Dart 中对末尾为空对象的 List 进行排序

    开始着手 Flutter 进行一个研究项目 我想知道如何对文件列表进行排序 事实上 我的程序有一个包含 4 个文件的列表 初始化如下 List
  • Python VLC - 获取位置轮询率解决方法

    我使用 Python VLC 在 pyqt 中构建自定义播放应用程序 我画了一个漂亮的自定义滑块来跟踪视频 但遇到了一些恼人的问题 无论我多久告诉我的滑块更新一次 它都会出现故障 每 1 4 秒左右跳跃一次 并且看起来不稳定 只是时间线 而
  • SVG textPath 上的希伯来语文本仅在 Safari 中反转

    将希伯来语文本放在 SVG textPath 上时 仅在 Safari 中会反转 macOS ventura 13 2 Safari 16 3 在 Firefox 和 Chrome 中都可以 不在路径上的文本总是可以的 此外 我可以使用 b