两个简单的 SVG 示例,其中包含一个文本元素、一个用于创建弧的 textPath 和一个 textLength 属性集。
在第一种情况下,使用给定的线性渐变来更改文本的颜色。在第二种情况下,使用最简单的填充属性。
在 IOS 设备(Iphone 12、Iphone XR,可能在其他设备上)上观察到显示第一个示例的问题。Chrome 和 Safari 浏览器。我附上屏幕截图,示例1中的文本被截断,示例2中的一切都很好。
在浏览器或安卓设备的桌面上,没有观察到问题,我尝试了大约 5 种不同的设备。
问题是 - 是否有任何解决方案如何在 IOS 设备上使用渐变来修复彩色显示?如您所见,渐变中只有一种颜色。也许有一些 CSS 参数或渐变属性可以解决这个问题?
示例 1
<svg width="300px" height="300px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 400" color="red">
<defs>
<linearGradient id="fill">
<stop stop-color="red"></stop>
</linearGradient>
</defs>
<text font-size="28" font-style="normal" font-weight="normal" fill="url(#fill)" transform="rotate(-11, 200, 200)" textLength="463.5587568803267"><defs><path id="text" d="M 200 200 m -168, 0 a 168,168 0 1,0 336,0 a 168,168 0 1,0 -336,0"></path></defs><textPath href="#text" xlink:href="#text" textLength="463.5587568803267">Пример текста по кругу</textPath></text>
</svg>
示例 2
<svg width="300px" height="300px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 400" fill="red">
<text font-size="28" font-style="normal" font-weight="normal" transform="rotate(-11, 200, 200)" textLength="463.5587568803267"><defs><path id="text" d="M 200 200 m -168, 0 a 168,168 0 1,0 336,0 a 168,168 0 1,0 -336,0"></path></defs><textPath href="#text" xlink:href="#text" textLength="463.5587568803267">Пример текста по кругу</textPath></text>
</svg>


