Skip to content

不用font-weight,利用svg滤镜feMorphology实现文字变粗变细

近日,在公司处理大屏样式,字体是HarmonyOS_Sans_TC_Thin,在字体加载完成后,使用发现并没有生效。 即使使用了font-weight,依然没作用。齐巧,浏览web发现了利用svg的滤镜可以实现文字的变粗变细。看了下来 倒是一剂解决方法。不过,说实话效果一般。需要慢慢调整radius的值。不然变细时,会把字腐蚀的看不见。

演示示例

正常

我是正常

苗条

我是苗条

体胖

我是体胖

示例代码

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>利用svg滤镜feMorphology实现文字变粗变细</title>
  <style>
    data {
      font-size: 40px;
      font-family: system-ui;
    }
    .erode {
      filter: url(#erode);
    }
    .dilate {
      filter: url(#dilate);
    }
  </style>
</head>
<body>
  <h4>正常</h4>
  <data class="normal">我是正常</data>
  <h4>苗条</h4>
  <data class="erode">我是苗条</data>
  <h4>体胖</h4>
  <data class="dilate">我是体胖</data>
  <svg xmlns="http://www.w3.org/2000/svg" width="0" height="0">
    <filter id="erode">
      <feMorphology operator="erode" radius="1" />
    </filter>
    <filter id="dilate">
      <feMorphology operator="dilate" radius="1" />
    </filter>
  </svg>
</body>
</html>

参考链接

https://www.zhangxinxu.com/wordpress/2024/05/svg-femorphology-font-weight-thin-stretch/

Designed & Powerd by liujun