js动态修改字体 Google fonts

 Google fonts API docs:https://developers.google.com/fonts/docs/css2

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>

    <link
      href="https://fonts.googleapis.com/css2?family=Goldman&display=swap"
      rel="stylesheet"
    />
    <link
      href="https://fonts.googleapis.com/css2?family=Big+Shoulders+Stencil+Display&display=swap"
      rel="stylesheet"
    />
    <link
      href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap"
      rel="stylesheet"
    />

    <style>
      html {
        --font: Goldman,sans-serif;
      }
      html[data-theme="font2"] {
        --font: "Big Shoulders Stencil Display",sans-serif;
      }
      html[data-theme="font3"] {
        --font: "Pacifico",sans-serif;
      }

      * {
        font-size: 30pt;
        font-family: var(--font);
      }
    </style>

  </head>
  <body>

    <p>
      Lorem ipsum dolor sit amet consectetur adipisicing elit. Aspernatur
      facilis labore dolor perferendis illo eligendi dolores neque maxime
      obcaecati aut perspiciatis dolorum, eum at atque dolore nobis cum quis
      ducimus!
    </p>

    <button class="font1">Goldman</button>
    <button class="font2">Big Shoulders Stencil Display</button>
    <button class="font3">Pacifico</button>

    <script>
      document.querySelector(".font1").addEventListener("click", (e) => {
        document.documentElement.removeAttribute("data-theme");
      });
      document.querySelector(".font2").addEventListener("click", (e) => {
        document.documentElement.setAttribute("data-theme", "font2");
      });
      document.querySelector(".font3").addEventListener("click", (e) => {
        document.documentElement.setAttribute("data-theme", "font3");
      });
    </script>

  </body>
</html>

 注:同一字体可设置不同字重font-weight

<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100;300;400;500;700;900&display=swap" rel="stylesheet">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值