当前位置: 首页 > news >正文

Nuxt3【详解】资源引用 vs 添加样式(2024最新版)

字体的引用

1.本地字体放在 public 中
2. 在 css 文件中定义 assets/css/main.css

@font-face {font-family: 'FarAwayGalaxy';src: url('/fonts/FarAwayGalaxy.woff') format('woff');font-weight: normal;font-style: normal;font-display: swap;
}
  1. 在页面中使用
<style>
h1 {font-family: 'FarAwayGalaxy', sans-serif;
}
</style>

assets 中的资源

<img src="~/assets/img/nuxt.png" alt="Discover Nuxt 3" />

public 中的资源

在 public/img/ 目录中引用一个图像文件

<img src="/img/nuxt.png" alt="Discover Nuxt 3" />

组件中导入样式

<script>
// 使用静态导入以实现服务器端兼容性
import '~/assets/css/first.css'// 注意:动态导入不兼容服务器端
import('~/assets/css/first.css')
</script><style>
@import url("~/assets/css/second.css");
</style>

使用 CSS 模块

<template><p :class="$style.red">This should be red</p>
</template><style module>
.red {color: red;
}
</style>

样式预处理器

如使用 SCSS、Sass、Less 或 Stylus 等

  1. 安装对应的样式预处理器
npm install sass
  1. assets 中书写样式
    如 assets/scss/main.scss
  2. 页面中导入
<style lang="scss">
@use "~/assets/scss/main.scss";
</style>

第三方的样式包

如 animate.css
3. 安装样式包

npm install animate.css
  1. 页面中导入
<script>
import 'animate.css'
</script><style>
@import url("animate.css");
</style>

也可配置成全局样式 (nuxt.config.ts 中)

export default defineNuxtConfig({css: ['animate.css']
})

配置全局样式

nuxt.config.ts 中

css 配置

// 配置全局的 css
export default defineNuxtConfig({css: ['~/assets/css/main.css']
})

vite 配置 css

export default defineNuxtConfig({vite: {css: {preprocessorOptions: {// 配置全局的 scssscss: {additionalData: '@use "@/assets/_colors.scss" as *;'},// 配置全局的 sasssass: {additionalData: '@use "@/assets/_colors.sass" as *\n'}}}}
})

修改 head

app.head 配置

export default defineNuxtConfig({app: {head: {link: [{ rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css' }]}
}})

动态添加样式表 useHead

useHead({link: [{ rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css' }]
})

使用 Nitro 插件修改 head

创建一个插件,放在 ~/server/plugins/my-plugin.ts 中

export default defineNitroPlugin((nitro) => {nitro.hooks.hook('render:html', (html) => {html.head.push('<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">')})
})

使用 PostCSS

Nuxt 内置了 postcss

nuxt.config.ts 中配置 postcss

export default defineNuxtConfig({postcss: {plugins: {'postcss-nested': {}"postcss-custom-media": {}}}
})

组件中使用

<style lang="postcss">/* 在这里编写 stylus */
</style>

http://www.mrgr.cn/news/1100.html

相关文章:

  • EmguCV学习笔记 VB.Net和C# 下的OpenCv开发 C# 目录
  • AI安全-文生图
  • leetcode 41-50(2024.08.19)
  • Centos系统中创建定时器完成定时任务
  • CDGA|数据治理落地实践指南:构建高效、安全的数据管理体系
  • 小五金加工:细节决定产品质量与性能
  • 验证实战知识点--(1)
  • Unity与UE,哪种游戏引擎适合你?
  • Midjourney中文版教程:参数详解
  • 【多线程开发 6】spring中的注解/API的线程问题
  • ACL访问控制列表
  • 使用 lateral view explode(col1)后行数变少了,bug排查
  • xss之DOM破坏
  • 产线一直在用的 RabbitMQ 搭建教程(含负载均衡配置,验证脚本,监控案例),偷偷抄出来的,建议收藏备用
  • CSS image-set()函数与多倍图设置
  • 【Linux】系列入门摘抄笔记-8-权限管理chmod/chown
  • 初识Linux · 基本指令(2)
  • Shell参考 - Linux Shell 训练营
  • Servlet---axios框架 ▎路由守卫
  • k8s 进阶实战笔记 | Ingress-traefik(一)