如何在 Nuxt 中高效加载谷歌字体

2023-11-27

我正在使用这个谷歌字体font-family: 'Saira Semi Condensed', sans-serif;

Link: https://fonts.google.com/specimen/Saira+Semi+Condensed

我正在从事 NuxtJS 项目。我必须在两个不同的组件中使用这种字体,但具有不同的字体粗细。我已经导入了所有的谷歌字体链接Layout.vue.

对于组件 A 来说font-weight is 600& 对于组件 B 来说font-weight is 800。所以我认为在相应的组件中给出不同的字体粗细会起作用。但它不起作用。应用了唯一的基本字体,即Saira Semi Condensed, sans-serif;但字体粗细值没有反映。为了解决这个问题,我需要导入两个具有相同字体但不同字体粗细的谷歌字体链接Layout.vue这使得它变得多余。

对于字体粗细:600

@import url('https://fonts.googleapis.com/css2?family=Saira+Semi+Condensed:wght@600&display=swap%27);

对于字体粗细:800

@import url('https://fonts.googleapis.com/css2?family=Saira+Semi+Condensed:wght@800&display=swap%27);

我认为我导入相同字体的两个链接的方式看起来不太好。你们能帮我解决这个问题吗? 提前谢谢您。

Code:

布局.vue

<template>
  <div>
    <Nuxt />
  </div>
</template>

<style>
@import url('https://fonts.googleapis.com/css2?family=Nunito&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Saira+Semi+Condensed:wght@600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Saira+Semi+Condensed:wght@800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@700&display=swap');

html {
  font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI',
    Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-size: 16px;
  word-spacing: 1px;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
</style>

索引.vue

<template>
  <div>
    <Navbar />
    <ComponentA />
    <ComponentB />
    <Footer />
  </div>
</template>

<script>
import Navbar from '../components/Navbar.vue'
import Clock from '../components/ComponentA.vue'
import Days from '../components/ComponentB.vue'
import Footer from '../components/Footer.vue'
export default {
  components: {
    Navbar,
    ComponentA,
    ComponentB,
    Footer,
  },
}
</script>

ComponentA.vue

<template>
  <div>
    <h1>I am component A</h1>
  </div>
</template>

<script>
export default {
  name: 'ComponentA',
}
</script>

<style scoped>
footer {
    color: blue;
    font-family: 'Saira Semi Condensed', sans-serif;
    font-size: 20px;
    text-align: center;
 }
</style>

ComponentB.vue

<template>
  <div>
    <h1>I am component B</h1>
  </div>
</template>

<script>
export default {
  name: 'ComponentB',
}
</script>

<style scoped>
footer {
    color: red;
    font-family: 'Saira Semi Condensed', sans-serif;
    font-size: 24px;
    text-align: center;
 }
</style>

您正在从 CDN 加载字体,这不是推荐的做法。

这是摘录于此的一段话2021 年出色绩效清单作者:维塔利·弗里德曼

现在,我们中的许多人可能正在使用 CDN 或第三方主机来加载网络字体。一般来说,如果可以的话,最好自行托管所有静态资源,因此请考虑使用 google-webfonts-helper,这是一种自行托管 Google Fonts 的无忧方式。如果不可能,您也许可以通过页面源代理 Google 字体文件。

看着这个,我确实推荐使用@nuxtjs/google-fonts,这是一个很酷的 Nuxt 模块。

我实际上问过我的模块配置是否正确,这是 github 问题:https://github.com/nuxt-community/google-fonts-module/issues/26

这里有一个使用示例nuxt.config.js

export default {
  buildModules: [
    [
      '@nuxtjs/google-fonts',
      {
        families: {
          Mali: {
            wght: [400, 600, 700],
          },
        },
        subsets: ['latin'],
        display: 'swap',
        prefetch: false,
        preconnect: false,
        preload: false,
        download: true,
        base64: false,
      },
    ],
  ]
}

并且不要忘记还要处理@字体脸CSS 端当然!


PS:如果您遇到以下问题未下载具体权重,您可以使用overwriting: true在您的模块配置中或将软件包版本更改为v3.0.0-1.

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

如何在 Nuxt 中高效加载谷歌字体 的相关文章

  • 嵌套在另一个内联块元素中的内联块元素具有 offsetTop

    我刚开始学习 HTML 现在我有一些代码 例如 div style height 300px width 500px font size 6 div style display inline block background pink wi
  • 尝试将星号添加到必填输入字段

    我想我不太明白 before and after因为我无法让这个工作 我只是想在表单中的必填字段后添加一个星号 我的代码很简单
  • 使用 CSS 修复自定义字体行高

    在我正在开发的新网络应用程序上使用自定义字体时 我遇到了一个奇怪的问题 这种自定义字体 FF DIN 似乎具有自然垂直的偏离中心的行高 这迫使我放置一些顶部填充黑客来补偿按钮和输入等元素的顶部空间 示例 绿色字体 Helvetica Neu
  • 有没有办法在 Nokogiri css 中转义非字母数字字符?

    我有一个锚标签 file html stuff morestuff CHP 1 SECT 2 1 尝试提取 Nokogiri 中引用的内容 documentFragment at css stuff morestuff CHP 1 SECT
  • Chrome扩展程序自定义光标

    我构建了一个 Google Chrome 扩展程序 在网站中放置一些 IMG 标签 hover 上的此 img 标记必须显示自定义光标 该扩展使用 jQuery 作为其注入的核心脚本 我尝试了以下方法 1 var cursor url ch
  • 位置固定,无顶部和底部

    我发现了有趣的功能 但找不到它发生的原因 所以 我们有固定位置元素 它位于 body 下方 第一个元素有样式 firstEl width 100 height 200px background color green 第二个元素有 fixe
  • 如何在没有文本修饰的文本下方添加一行:下划线? [复制]

    这个问题在这里已经有答案了 我需要在文本下方添加一行 而不需要文本装饰 下划线 否则如何在文本和行之间创建自定义空间 我们所做的 您可以使用Border Bottom和一些Padding Bottom a border bottom 1px
  • IE8/9 - CSS 文件的最大字节数

    我目前正在开发的应用程序有过多的 CSS 样式 我们似乎已经达到了 IE8 9 以及它可以加载的 CSS 数量的某种限制 在某些时候 它会停止解释 CSS 从而破坏某些页面上的样式 我们正在使用 Combres 来压缩 缩小导致 CSS 文
  • webpack-cli 错误:编译规则集失败

    我正在尝试重写配置不当的package json 删除node modules 删除 cache 从头开始 包 json name billing version 0 1 0 private true description A Vue j
  • CSS flex-basis: 0% 与 flex-basis: 0px 有不同的行为

    根据MDN https developer mozilla org en US docs Web CSS flex the flex 1应设置简写flex basis 0 然而 它实际上设置了flex basis 0 更令人惊讶的是 这有不
  • 调整大小后获取实际图像大小

    我有一个充满缩略图的页面 用 css 调整大小150x150 当我单击缩略图时 页面变暗 并且图像以其真实尺寸显示 目前 我必须手动创建一个包含所有图像的实际高度的数组 为了解决设计问题 减少画廊的手动操作 我需要在调整图像大小 CSS 后
  • 如何解决flash的zindex问题

    在网页中我需要显示div覆盖未使用的 Flash 横幅wmode transparent环境 怎么解决呢 根据我的记忆 你可以将 div 推入 也许使用Javascript 这样你就不会弄乱你的HTML iframe 是像 flash 一样
  • 有没有一种方法可以使页面布局在 100% 缩放下完美契合,同时又尊重更大的缩放系数?

    有多种方法可以布局网页 使其适合浏览器视口 DOMwindow 当我说 适合 时 我包括更改所用字体的大小 更改 DIV IMG 和其他渲染元素的宽度和高度 以及允许元素 流畅 移动 目标是使页面在所有显示设备 从小型手机到大桌面屏幕 上看
  • 自动溢出的容器中不会出现滚动条(IE10、Windows Phone 8)

    我有一个容器 比方说div with overflow auto 其中的元素完全按照预期滚动 但不会出现典型的触摸滚动条 我尝试设置 ms overflow style auto明确地 但没有任何改变 浏览器 IE10 设备 Windows
  • 如何使链接悬停时的背景图像模糊?

    当您用鼠标光标悬停链接时 我想让我的背景图像模糊 5 像素 有什么简单的方法可以实现这一点吗 我有点纠结于类和 id 在这里 pic background url http www metalinjection net wp content
  • 输入元素可滚动并启用文本溢出省略号

    当我添加text overflow ellipsis对于输入元素 该元素是可滚动的 当我将光标放在元素上时 我可以左右滚动 就好像文本是全宽并且没有被截断一样 尽管后面没有文本 我该如何阻止这种行为 input width 180px te
  • Bootstrap下拉菜单文本颜色

    所以我第一次使用 Twitter 的 Bootstrap 我试图在下拉菜单折叠后更改其文本的颜色 如果有道理的话 I used 当您压缩网页以显示折叠菜单并转到下拉列表时 您会看到蓝色背景转移到下拉菜单项 但字体颜色为黑色 使其很难阅读 我
  • HTML 布局:向现有网站添加侧边栏

    我有一个网站 其正文如下所示 div div div div div div 这些中没有使用绝对 相对定位技巧divs 但是有很多floats clears margins and padding这些风格divs 及其内部元素 所有这些都会
  • 使用带有箭头的 MaterializeCSS 轮播 - 如何使用普通 javascript 进行初始化

    我正在尝试使用 MaterializeCSS 创建带有箭头的轮播 我正在尝试使用这个代码笔 https codepen io Paco Cervantes pen ZLxKpj取得有限的成功 我想使用普通的 javascript 而不是 j
  • CSS3 背景渐变未验证,有人可以告诉我为什么吗?里面的代码示例

    有人能告诉我为什么下面的 css 没有验证吗 我一直在尝试自己研究这个问题 但没有运气 我读过的所有文档都说这是在 css3 中进行渐变的正确原因 header color white font size 12px font family

随机推荐

  • 如何在两个值之间随机选择?

    所以基本上我试图让一段代码在两个值 40 和 40 之间随机选择 为此 我正在考虑使用古老的数学 例如 random num 1 value 40 其中 value 1 2 random num 顾名思义应该是一个随机数 有什么帮助吗 我正
  • 在给定禁用的未经身份验证的 IdentityId 的情况下,我可以使用 AWS Cognito 解析经过身份验证的 IdentityId 吗?

    我有一个支持 Cognito 未经身份验证的身份的 JavaScript Web 应用程序 我正在尝试找出如何识别链接的经过身份验证的 IdentityIdDISABLED未经身份验证的 IdentityId 第一个未经身份验证的用户通过以
  • 如何保护我的登录页面

    我有一个 login html 网页 让用户输入他的用户名和密码 当他单击 提交 时 我使用 Javascript 收集输入的值 然后对 php 文件进行 Ajax POST 调用并发送用户名和密码 我担心的是 这是发送用户名和密码的安全方
  • REST 数字或字符串资源标识符?

    我正在做一些研究来帮助我开发 REST API 这是我在任何地方都没有看到过深入讨论的主题 如果系统中有用户 使用数字标识符来识别用户是否更好 users 1 或者使用字符串标识符 用户 RSmith 我可以看到每种方法的假设潜在优点和缺点
  • 如何查看gdb内部智能指针的内部数据?

    我有如下测试程序 include
  • C演员的真正作用是什么?

    我编写了越来越多的 C 应用程序 现在我对强制类型转换感到好奇 在 C 中 动态转换是一种非常昂贵的操作 例如向下转换 但我什至不知道静态转换 在 C 语言中 我必须写这样的东西 assert p p is void int v int p
  • 当 new 表达式的参数子表达式抛出异常时释放内存

    动态分析在我们的代码库中发现了奇怪的内存泄漏 有问题的代码如下所示 Something p new Something getArgument 其中函数getArgument 有时会抛出 当它抛出时 新分配的对象就会被泄漏 这是由 Visu
  • [Authorize(Users = "*")] 在 asp.net mvc 中意味着什么

    什么是 Authorize Users 在 asp net mvc 中是什么意思 还请解释一下 Authorize Users and Authorize Users Thanks 要授权所有用户 只需省略使用 Authorize 属性一并
  • 如何以编程方式更改 Windows 桌面壁纸? [复制]

    这个问题在这里已经有答案了 我想使用 C 为 Windows XP 设置壁纸 我已经开发了代码 因此它可以在 Windows 7 中完美运行 但显然对于 XP 来说并不相同 我将该壁纸添加为资源 将其编译操作设置为内容并始终复制 奇怪的是
  • 如何围绕节点的 Y 轴旋转 SKSpriteNode?

    我正在尝试围绕其 Y 轴旋转 SKSpriteNode 节点 我知道有 zRotation 属性 它将顺时针或逆时针旋转节点 然而 我想围绕它自己的 Y 轴旋转节点 例如跳舞的芭蕾舞演员 但我似乎找不到任何功能来这样做 最好的推荐方法是什么
  • 错误静态方法需要空实例,非静态方法需要非空实例

    我正在尝试创建一个表达式树 我需要从数据表中读取数据并检查其列 要检查的列以及要检查的列数仅在运行时已知 列名作为字符串数组提供给我 每列都有一个要检查的字符串列表 我尝试了示例表达式树 如下所示 我在这里遇到了一个错误 静态方法需要空实例
  • Keras-tuner 搜索函数抛出 Failed to create a NewWriteableFile 错误

    tensorflow 2 相对较新的 keras tuner 模块导致错误 无法创建 NewWriteableFile tuner search 函数正在运行 只有在试用完成后才会抛出错误 这是来自 senddex Youtube 频道的教
  • EJB 3 存根生成

    我有一个 ejb 3 兼容的 ejb 比如说 Remote interface Hai String sayHai Stateless name xxx mappedname yyy public class HaiImpl impleme
  • 如何访问weblogic 10.3.6中定义的JNDI数据源

    我已经使用 weblogic 控制台创建了 JNDI 数据源 但无法从 Web 应用程序访问该对象 以下是详细信息 在 weblogic 10 3 6 中 我将数据源的 JNDI 名称指定为 jdbc mydb 为了从我的 Web 应用程序
  • 如何使用 DataTemplate 访问列表框中的特定项目?

    我有一个 ListBox 其中包含一个带有 2 个 StackPanel 的 ItemTemplate 我想访问的第二个 StackPanel 中有一个 TextBox 将其可见性更改为 true 并接受用户输入 触发器应该是 Select
  • Jsoup.connect(string) 编码问题

    我有几个特殊字符 url 我必须使用 Jsoup connect string 连接到 但它无法加载页面 出现错误 500 我不太喜欢 URL 等 但我认为它与 JSoup connect 使用的编码有关 无论如何 我将如何继续以允许链接具
  • 如何在Team Services中替换JSON文件的变量?

    我陷入了角度项目的发布变量替换的困境 我有一个settings json我想替换一些变量的文件 test variable to replace 我试图在市场上找到一些自定义任务 但所有任务似乎都只能使用 web config 的 xml
  • jQuery:Chrome 文本区域和调整大小事件

    Chrome 默认情况下会调整文本区域的大小 如何将事件附加到文本区域的调整大小事件 做着天真的事 textarea resize function 什么也没做 您似乎无法专门附加事件来调整文本区域的大小 调整窗口大小时会触发调整大小事件
  • 为什么 ./gradlew clean build 和 ./gradlew clean :build 之间有区别

    我有以下情况 我有一个包含多个子项目的项目 今天我尝试通过命令行使用 gradle 构建项目 当我执行时构建成功 gradlew clean build 但不与 gradlew clean build 它会导致不同的错误 具体取决于激活的子
  • 如何在 Nuxt 中高效加载谷歌字体

    我正在使用这个谷歌字体font family Saira Semi Condensed sans serif Link https fonts google com specimen Saira Semi Condensed 我正在从事 N