我正在try 创建垂直方向的文本与从右向左渐变使用下面的代码.但是,文本显示不正确.

text {
  writing-mode: vertical-rl;
  font-size: 50px;
  font-weight: bold;
}
<svg width="500" height="500">
  <defs>
    <linearGradient id="grad-md" x1="100%" y1="0%" x2="0%" y2="0%">
      <stop offset="0%" style="stop-color:#374151; stop-opacity:1"></stop>
      <stop offset="55%" style="stop-color:#374151; stop-opacity:1"></stop>
      <stop offset="100%" style="stop-color:#fff; stop-opacity:0"></stop>
    </linearGradient>
  </defs>
  <text x="50" y="50" fill="url(#grad-md)">测试文本123</text>
</svg>

正如您所看到的,最初的几个中文字符没有正确显示,中文文本的渐变方向也不正确.

推荐答案

默认情况下,text-originationmixed,适用于不同的语言.这会导致使用不同的坐标系进行梯度计算.你可以强迫他们使用uprightsideways来统一计算(但这意味着你的中文也会倾斜):

text {
  writing-mode: vertical-rl;
  font-size: 50px;
  font-weight: bold;
  text-orientation: sideways;
}
<svg width="500" height="500">
    <defs>
        <linearGradient id="grad-md" x1="100%" y1="0%" x2="0%" y2="0%">
            <stop offset="0%" style="stop-color:#374151; stop-opacity:1"></stop>
            <stop offset="55%" style="stop-color:#374151; stop-opacity:1"></stop>
            <stop offset="100%" style="stop-color:#fff; stop-opacity:0"></stop>
        </linearGradient>
    </defs>
    <text x="50" y="50" fill="url(#grad-md)">测试文本123</text>
</svg>

但是,如果您只想对文本应用一些渐变,非SVG解决方案可能是更好的 Select :

span {
  background-image: linear-gradient(to right, red, blue);
  background-clip: text;
  -webkit-background-clip: text;
  font-size: 50px;
  writing-mode: vertical-lr;
  color: transparent;
  font-weight: bold;
  white-space: nowrap;
}
<span>测试文本123</span>

Css相关问答推荐

如何在移动屏幕尺寸上包装元素?

Primeng Angular更改p-dialog背景 colored颜色

我无法在css中设置填充或边距

如何在横向和纵向布局上使用 CSS 网格中的纵横比来保持纵横比

CSS Select 器在 rvest 中找到,在 RSelenium 中找不到

antd 中的子菜单项不可滚动

使用border-radius时填充元素之间的空间

如何在每一行周围放置不同大小的阴影?

如何使用 TailwindCSS 禁用环形阴影?

在嵌套的弹性框中创建弹性项目之间的空间

紫色表示访问过的超链接

  • 元素上的子弹来自哪里?
  • 如何强制 div 出现在下方而不是旁边?

    CSSzoom 高度以匹配宽度 - 可能与外形尺寸

    如何从标题中删除粗体?

    单选按钮和标签显示在同一行

    如何使用 Bootstrap2 使 div 居中?

    如何根据容器大小设置字体大小?

    在无序列表中的项目之后添加管道分隔符,除非该项目是最后一行

    CSS(webkit):在绝对定位元素上用底部覆盖顶部