如何使用nuxt js将字体嵌入所有页面

Joe*_*oey 3 vue.js vuex nuxt.js

我只是将google字体嵌入到nuxt.config.js中的全局设置

 link: [
      { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Roboto' }
    ]
Run Code Online (Sandbox Code Playgroud)

但是如何将这种字体应用于每个页面。

Ane*_*eed 20

快的

在你的 nuxt.config.js fi

head: {
  ...
  ...
  link: [
    {
      rel: 'icon',
      type: 'image/x-icon',
      href: '/favicon.ico'
    },
    {
      rel: 'stylesheet',
      href: 'https://fonts.googleapis.com/css?family=Lato:400,700'
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

并在您的 layouts/default.vue 或您正在使用的任何其他布局文件中添加样式标签

<style scoped>
#app {
  font-family: 'Lato', sans-serif;
}
</style>
Run Code Online (Sandbox Code Playgroud)


Law*_*one 5

如果您想在应用程序中包含字体以便服务

从以下位置下载字体:https : //fonts.google.com/specimen/Roboto?selection.family=Roboto(打开抽屉并下载.zip文件)。

  1. 将.zip的内容解压缩到./assets/fonts/*(如果不存在则创建)。
  2. 创建./assets/fonts/roboto.css并放置以下内容:
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
Run Code Online (Sandbox Code Playgroud)

(您可以通过访问https://fonts.googleapis.com/css?family=Roboto找到此CSS )。

然后更改nuxt.config.js以在css属性中包含CSS文件:

module.exports = {
  /*
  ** Global CSS
  */
  css: [
    '~/assets/fonts/roboto.css'
  ]
}
Run Code Online (Sandbox Code Playgroud)

然后,您将其应用于font-family: 'Roboto', sans-serif;文本元素。


在每一页上使用字体

创建一个./assets/css/styles.css包含以下内容的文件:

body
{
  font-family: 'Roboto', sans-serif;
}
Run Code Online (Sandbox Code Playgroud)

然后如上所述,在中包含CSS文件nuxt.config.js

module.exports = {
  css: [
    '~/assets/fonts/roboto.css',
    '~/assets/css/styles.css'
  ]
}
Run Code Online (Sandbox Code Playgroud)

同样适用于其他资产,例如其他字体,图标,框架CSS等。

  • 如果您下载了实际的字体文件,为什么您仍然从“https://fonts.gstatic.com”引用它们? (4认同)

eli*_*eli 5

就这样简单

  1. 转到 Google 字体并选择您的字体样式,例如Montserrat

  2. nuxt.config.js并添加您的字体网址,如下所示

export default {  
 head: {
        meta: [],
          link: [
       { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Montserrat&display=swap"'}
     ]
   }
Run Code Online (Sandbox Code Playgroud)
  1. 转到您的 nuxt 项目 -> 布局目录 ->default.vue文件并appv-app标签中添加名为(或您想要的任何名称)的类,如下所示
 <v-app dark class="app"> 

      --your app goes here -- 

  </v-app>
Run Code Online (Sandbox Code Playgroud)
  1. 在相同的文件样式选项中,在上面定义的类主体中添加以下行

     <style>
     .app{
       font-family: 'Montserrat', sans-serif;
     }
     </style>
    
    Run Code Online (Sandbox Code Playgroud)

    确保在 v-app 标签中定义了 class 并使用 <style>而不是 <style scoped>在整个项目中生效


Kon*_*mba 1

使用以下规则更新您的 CSS:

body {
  font-family: 'Roboto', sans-serif;
}
Run Code Online (Sandbox Code Playgroud)

如果您还没有设置 CSS 样式表,请在assets名为 ie 的目录中创建一个新文件main.css。将上面的代码放入其中并保存。然后编辑在对象nuxt.config.js后面添加这段代码:head

css: [
  '@/assets/main.css'
],
Run Code Online (Sandbox Code Playgroud)