tailwindcss 是一个 CSS 框架,在 laravel 通过工程化的方式引入 tailwindcss,用到如下方法:
初始化 laravel 项目
laravel new tailwindcss-demo
安装依赖
npm install -D tailwindcss postcss autoprefixer
生成 tailwindcss 配置文件
npx tailwindcss init -p
修改 tailwindcss 默认配置
module.exports = {
content: [
"./resources/**/*.blade.php",
"./resources/**/*.js",
],
theme: {
extend: {},
},
plugins: [],
}
在 tailwindcss.config.js 中,主要是指定 blade 和 js 文件做为输入,因为可能会在 js 或者 blade 中用到 tailwindcss 的样式信息
修改 vite 配置
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [
laravel({
input: ['resources/js/app.js'],
refresh: true,
}),
],
});
在 vite.config.js 中,指定输入为 app.js
引入 tailwindcss
在 app.css 中,引入tailwindcss
@tailwind base;
@tailwind components;
@tailwind utilities;
引入 app.css
在 app.js 中,引入 app.css,因为 app.js 做为 vite 的入口,所以app.js 中,可以引入app.css
import './bootstrap';
import '../css/app.css';
运行
npm run build
解释
如下代码,来自于 chatgpt 的解释,因为我也是第一次用工程化的方法引入 js 和 css
这段代码用于安装和初始化 Tailwind CSS,一种功能强大且高度可定制的 CSS 框架。具体来说,它执行以下操作:
npm install -D tailwindcss postcss autoprefixer
:使用 npm(Node.js 包管理器)安装三个依赖包:tailwindcss
:Tailwind CSS 的核心库。postcss
:一个用于转换 CSS 的开源工具,可以优化代码、引入新特性等。autoprefixer
:一个 PostCSS 插件,会自动添加浏览器前缀以兼容不同浏览器。
-D
标志表示这些包将作为开发依赖安装。npx tailwindcss init -p
:使用 npx(npm 包执行器)运行tailwindcss init
命令,以生成两个配置文件:tailwind.config.js
:Tailwind CSS 的配置文件,您可以在此自定义样式、主题等。postcss.config.js
:PostCSS 的配置文件,在其中配置插件(例如autoprefixer
)。
-p
标志表示同时生成 PostCSS 配置文件postcss.config.js
。
postcss 作用是什么?
PostCSS 是一个可扩展的 CSS 处理工具,使用 JavaScript 插件来转换和优化 CSS 代码。它允许您在不改变原始 CSS 语法的情况下引入新特性、解决兼容性问题等。以下是一些常见的 PostCSS 插件及其应用示例:
- autoprefixer:自动添加浏览器前缀(vendor prefixes),以便在不同浏览器中实现跨浏览器兼容性。 示例:
输入:
.example {
display: flex;
}
输出:
.example {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
- postcss-nested:支持嵌套选择器,使编写样式更简洁易懂。 示例:
输入:
.container {
background-color: white;
.button {
color: red;
}
}
输出:
.container {
background-color: white;
}
.container .button {
color: red;
}
- postcss-custom-properties:使您能够使用 CSS 自定义属性(即 CSS 变量)并为不支持它们的浏览器提供回退。 示例:
输入:
:root {
--main-color: blue;
}
.text {
color: var(--main-color);
}
输出:
:root {
--main-color: blue;
}
.text {
color: blue;
}
- cssnano:压缩和优化 CSS 代码,减小文件大小,加快页面加载速度。 示例:
输入:
.example {
margin: 10px 20px;
padding: 0px;
}
输出:
.example{margin:10px 20px;padding:0}
这些插件只是 PostCSS 丰富生态系统中的一部分,还有许多其他插件可以满足不同需求和优化目标。
tailwindcss.config.js 解释
在 tailwindcss.config.js
文件中,您可以配置和自定义 Tailwind CSS。以下是对该文件内容的解释:
content
:这个属性指定了 Tailwind 应该扫描哪些文件来查找类名(使用了 Tailwind 的样式),以便在构建时优化 CSS。在这个例子中,Tailwind 将会扫描以下文件:
- 所有位于
./resources/
目录下的.blade.php
文件。 - 所有位于
./resources/
目录下的.js
文件。
theme
:这个属性允许您自定义 Tailwind 的主题设置。通过在theme.extend
对象中添加自定义配置,您可以扩展或覆盖默认的样式。例如,您可以自定义字体、颜色、间距等。在这个例子中,extend
对象为空,表示没有进行任何自定义。
示例:自定义字体
theme: {
extend: {
fontFamily: {
'custom': ['Custom Font', 'sans-serif']
},
},
}
plugins
:这个属性允许您注册额外的第三方插件。插件可以用来扩展 Tailwind 的功能,例如添加新的组件或实用程序。在这个例子中,plugins
数组为空,表示没有启用任何插件。
示例:注册一个插件
const plugin = require('tailwindcss/plugin')
module.exports = {
// ...
plugins: [
plugin(function({ addUtilities }) {
const newUtilities = {
'.truncate-2-lines': {
'overflow': 'hidden',
'text-overflow': 'ellipsis',
'display': '-webkit-box',
'-webkit-line-clamp': '2',
'-webkit-box-orient': 'vertical',
},
}
addUtilities(newUtilities)
}),
],
}
总之,此 tailwindcss.config.js
文件定义了 Tailwind 在构建时应扫描哪些文件、提供了空的 theme.extend
对象用于自定义主题设置,并允许注册插件。通常,在项目进行时,开发者会根据需求在这个文件中进行更多的配置和自定义。
参考
Install Tailwind CSS 3 in Laravel 9 With Vite 3 (larainfo.com)
How to Install Tailwind CSS 3 in Laravel 9 With Vite 3 – TechvBlogs