vue项目引入tailwindcss

tailwindcss 是什么?

tailwindcss 官网

Tailwind CSS 是一个 工具优先(Utility-First)的 CSS 框架,它提供了一组低级别的、可组合的 CSS 类(Utility Classes),让开发者可以直接在 HTML 中快速构建自定义设计,而无需手写 CSS。

核心特点

1、Utility-First(工具类优先)

提供大量细粒度的类名(如 text-blue-500p-4flex),直接在 HTML 中组合使用,避免手写 CSS。

<button class="bg-blue-500 text-white px-4 py-2 rounded-lg hover:bg-blue-600">
  点击我
</button>

2、高度可定制

通过 tailwind.config.js 可以自定义颜色、间距、字体、断点等设计系统。

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: '#3b82f6', // 自定义品牌色
      },
    },
  },
};

3、响应式设计

内置响应式前缀(如 md:text-lglg:hidden),方便适配不同屏幕尺寸。

<div class="text-sm md:text-base lg:text-lg">
  响应式文本
</div>

4、JIT 模式(Just-In-Time)

按需生成 CSS,大幅减少文件体积(Tailwind v3+ 默认启用)。

5、无预定义组件

不同于 Bootstrap 或 Material UI,Tailwind 不提供现成的组件(如按钮、卡片),而是让开发者自由组合工具类构建 UI。

VS 传统 CSS 框架

VS Bootstrap

Bootstrap 是一个流行的 开源前端框架,用于快速构建响应式、移动优先的网站和 Web 应用。它由 Twitter 开发并开源,现由社区维护,提供了一套完整的 CSS 组件、工具类和 JavaScript 插件,帮助开发者快速搭建现代化 UI。

特性Tailwind CSSBootstrap
设计哲学提供工具类,自由组合样式。提供预定义组件(如按钮、导航栏)。
灵活性极高,适合定制化设计。较低,需覆盖默认样式才能自定义。
CSS 体积JIT 模式按需生成,较小。包含所有组件样式,较大。
学习曲线需记忆工具类,但熟练后效率极高。更易上手,但定制复杂。
VS Normalize.css

Normalize.css一个轻量级的 CSS 重置(Reset)库,旨在使不同浏览器的默认 HTML 元素样式更加一致,而不是完全清除它们。

tailwind CSS 内置了一个现代化重置样式:Preflight 构建在 modern-normalize 之上,是 Tailwind 项目的一组基本样式,旨在消除跨浏览器的不一致性。

若项目已用 Tailwind,通常无需单独引入 Normalize.css;

vue3 vite tailwindcss@3 版本

初始化项目

npm create vite@latest  --template vue
cd vue
npm install
npm run dev

安装tailwindcss@3 和 postcss 引入

npm install -D tailwindcss@3  postcss autoprefixer 
// 初始化引用
npx tailwindcss init -p

以上配置后,会在根目录生成 postcss.config.js tailwind.config.js,src目录下创建index.css tailwind.css

postcss.config.js配置如下

export default {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  },
}

tailwind.config.js配置如下

/** @type {import('tailwindcss').Config} */
export default {
  content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
  theme: {
    extend: {},
  },
  plugins: [],
}

tailwind.css配置如下

styles文件夹之下

/* src/index.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

index.css配置如下

styles文件夹之下的index.css

@import url('tailwind.css');

main.ts引入 index.css

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
// 注意此处
import "./index.css"

createApp(App).mount('#app')

自定义配置

tailwind.config.js配置如下

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./index.html",
    "./src/**/*.{vue,js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {
      // 自定义宽度类
      width: {
        ...Array.from({ length: 300 }, (_, i) => i + 1).reduce((acc, num) => {
          acc[num] = `${num}px`;
          return acc;
        }, {})
      },
      // 自定义高度类
      height: {
        ...Array.from({ length: 300 }, (_, i) => i + 1).reduce((acc, num) => {
          acc[num] = `${num}px`;
          return acc;
        }, {})
      },
      // 自定义 padding 类
      padding: {
        ...Array.from({ length: 150 }, (_, i) => i + 1).reduce((acc, num) => {
          acc[num] = `${num}px`;
          return acc;
        }, {})
      },
      // 自定义 margin 类
      margin: {
        ...Array.from({ length: 100 }, (_, i) => i + 1).reduce((acc, num) => {
          acc[num] = `${num}px`;
          return acc;
        }, {})
      },
      // 自定义 font-size 类
      fontSize: {
        ...Array.from({ length: 50 }, (_, i) => i + 1).reduce((acc, num) => {
          acc[num] = `${num}px`;
          return acc;
        }, {})
      }
    },
  },
  plugins: [],
};

以上配置 我们将fontSize margin 等改为了固定宽度,此时安装 postcss-px-to-viewport可以进行适配

npm install postcss-px-to-viewport

postcss.config.js配置如下

export default {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
    "postcss-px-to-viewport": {
      unitToConvert: "px", // 要转化的单位
      viewportWidth: 750, // UI设计稿的宽度
      unitPrecision: 6, // 转换后的精度,即小数点位数
      propList: ["*"], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
      viewportUnit: "vw", // 指定需要转换成的视窗单位,默认vw
      fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位,默认vw
      selectorBlackList: [], // 指定不转换为视窗单位的类名,
      minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
      mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
      // replace: true, // 是否转换后直接更换属性值
      exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
      landscape: false // 是否处理横屏情况
    }
  },
}

vue3 vite tailwindcss@4 版本

初始化项目

npm create vite@latest  --template vue
cd vue
npm install
npm run dev

tailwindcss 4版本采用插件安装

npm install tailwindcss @tailwindcss/vite

vite.config.js配置如下

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import tailwindcss from "@tailwindcss/vite";

// https://vite.dev/config/
export default defineConfig({
  plugins: [vue(), tailwindcss()],
});

一般在src文件夹下有一个styles文件夹,在其中的index.css中进行如下配置

@import "tailwindcss";

在main.js中或main.ts文件中引入上一个文件

import "./styles/index.css";

在app.vue文件中测试

<span class="flex text-red-400">tailwindcss4</span>
### 在 Vue3 项目中正确配置和使用 TailwindCSS #### 安装依赖 为了在 Vue3 项目中集成 Tailwind CSS,首先需要安装必要的依赖项。可以通过 npm 或 yarn 来完成此操作: ```bash npm install -D tailwindcss postcss autoprefixer ``` 或者如果使用 Yarn,则运行以下命令: ```bash yarn add -D tailwindcss postcss autoprefixer ``` 初始化 Tailwind CSS 配置文件以及 PostCSS 配置文件: ```bash npx tailwindcss init -p ``` 这一步会自动生成 `tailwind.config.js` 和 `postcss.config.js` 文件。 --- #### 修改 Tailwind CSS 配置文件 编辑生成的 `tailwind.config.js` 文件以匹配项目的结构。以下是推荐的内容设置方式[^1]: ```javascript /** @type {import('tailwindcss').Config} */ export default { content: [ "./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}" // 匹配所有 Vue/JS/TS 文件 ], theme: { extend: {}, }, plugins: [], } ``` 对于更高级的情况,比如希望支持 TypeScript 类型推断,可以按照如下方法调整配置文件名称及其内容[^2]: - **重命名配置文件** 将默认生成的 `tailwind.config.js` 改名为 `tailwind.config.ts`。 - **更新配置文件内容** ```typescript import type { Config } from 'tailwindcss'; const config: Config = { content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], theme: { extend: {}, }, plugins: [], }; export default config; ``` 通过这种方式能够更好地利用 TypeScript 的静态分析能力来增强开发体验。 --- #### 创建并引入样式文件 创建一个新的全局样式表用于加载 Tailwind CSS 提供的基础层、组件层及工具层规则。通常建议将其放置于 `src` 目录下,例如命名为 `style.css`: ```css @tailwind base; @tailwind components; @tailwind utilities; ``` 接着,在入口 JavaScript (或 TypeScript) 文件(通常是 `main.js` 或者 `main.ts`)里引入该样式文件: ```javascript // main.js or main.ts import './style.css'; ``` 这样做的好处是可以集中管理所有的外部资源链接而无需担心路径别名带来的复杂度问题。 --- #### 构建与服务启动 最后确保构建环境已正确定义好处理 `.css` 文件的方式之后即可正常执行本地服务器测试功能。如果是基于 Vite 脚手架搭建起来的应用程序可以直接运行下面这条指令查看效果变化情况: ```bash npm run dev ``` 而对于其他类型的 Webpack/Vue CLI 工程则可能需要用到对应的 loader 插件来进行额外的支持适配工作。 --- ### 总结 以上就是在 Vue3 应用程序当中成功嵌入 Tailwind CSS 所需经历的主要流程概述说明文档版本号差异可能会引起某些细节上的区别所以实际动手实践过程中遇到任何疑问都欢迎随时查阅官方最新指南资料获取帮助信息! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值