迟到了几年的tailwind css初体验

前言

说实话前端的工具更新迭代非常快,但是很多的工具只是锦上添花,使我们的工作更加便捷,但是不使用也不会影响到我们工作的根本。就像我们学习开车一样,我们只要学会开车,无论现在的车厂怎么内卷,新车有什么新功能,我们只要会开车,对于新功能很快就可以上手的。

废话不多说了,其实tailwind css 已经出来很久了,但是一直没有机会尝试使用,最近心血来潮体验了一下,下面就简单来做个初体验总结。

安装

tailwind css的安装还是比较简单的,只要跟着官网进行就可以了。

执行npx tailwindcss init的时候报错

如果我们在执行npx tailwindcss initpnpm tailwindcss init时报出以下错误

js 复制代码
npx tailwindcss init
npm error could not determine executable to run

我们可以检查一下是否Tailwind CSSPostCSS 版本冲突了。

与UI框架样式冲突

如果我们项目中,原本是使用了一些UI框架的,像我项目中使用了Vant UI会出现样式冲突的情况。

目前的解决方案主要有三种:

1.将ui库样式的引入放在tailwind css之后

2.取消基础映射样式的引入,即把文档中@tailwind base;的引用去掉

3.禁用preflight

具体的方法可以上网查找一下对应的解决方案

基础使用

tailwind css很多人不愿意使用的一个关键点就是有很多新的class,这无疑增加了开发者的心智负担和门槛。

但是我在使用过程中的真实体验就是,如果我们搭配vscode的IntelliSense 插件和官方的文档,使用起来其实也很容易就上手了。

使用例子

js 复制代码
<div class="w-96 ...">w-96</div>
<div class="w-80 ...">w-80</div>
<div class="w-64 ...">w-64</div>
<div class="w-48 ...">w-48</div>
<div class="w-40 ...">w-40</div>
<div class="w-32 ...">w-32</div>
<div class="w-24 ...">w-24</div>

进阶使用

搭配css变量使用

现在基本上所有的UI框架都使用了css 变量,因此我们的tailwind css 也必须搭配css 变量使用才方便。

使用起来也很方便,只要我们先定义好css变量,然后再tailwindcss.config中配置即可

js 复制代码
/** @type {import('tailwindcss').Config} */
export default {
	content: ["./public/index.html", "./src/**/*.{js,jsx,ts,tsx}"],
	theme: {
		extend: {
			colors: {
				main: "var(--main-color)",
				"home-bg": "var(--home-bg-color)",
				"text-primary": "var(--text-primary-color)"
			}
		}
	},
	plugins: []
};

自定义class

在实际开发中,tailwind css中自带的class 可能并不能满足我们的开发需求,这个时候我们就需要自定义class.

我们可以在tailwindcss.config配置

js 复制代码
export default {
	content: ["./public/index.html", "./src/**/*.{js,jsx,ts,tsx}"],
	theme: {
		extend: {
			colors: {
				main: "var(--main-color)",
				"home-bg": "var(--home-bg-color)",
				"text-primary": "var(--text-primary-color)"
			},
			fontFamily: {
				pingFang: ["PingFang SC", "sans-serif"]
			},
			fontSize: {
				tiny: "var(--font-tiny)",
				small: "var(--font-small)",
				normal: "var(--font-normal)",
				medium: "var(--font-medium)",
				big: "var(--font-big)",
				large: "var(--font-large)"
			},
			borderRadius: {
				normal: "var(--border-radius-normal)"
			}
		}
	},
	plugins: []
};

然后我们在代码中就可以直接使用了

js 复制代码
<NavBar 
   className="bg-main font-pingFang font-semibold" 
   title={props.title ?? "--"} 
   safeAreaInsetTop={true} 
   onClickLeft={handleBack} />

@apply避免重复使用大量class

tailwind css使用中,因为每个class 都是原子化的,所以不可避免要使用很多class .那如果我们有两个组件的样式很接近怎么办呢,这时候我们就可以使用tailwind css的@apply方法了

js 复制代码
.margin-center { @apply mx-auto my-0; } 

.flex-center { @apply flex items-center justify-center; } 

.absolute-center { @apply absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2; }

像上面的例子一样,我们就可以将多个原子化的class 组合成一个新的class,方便我们复用。

总结

tailwind css 会有很多最小粒度的class 可以帮助我们快速的写css而不是添加很多无意义的class.

它里面所有预定义的 class 都可以通过配置文件修改值,也可以通过 aaa-[14px] 的方式定义任意值的class

相关推荐
慧慧吖@11 分钟前
关于两种网络攻击方式XSS和CSRF
前端·xss·csrf
徐小夕24 分钟前
失业半年,写了一款多维表格编辑器pxcharts
前端·react.js·架构
ai小鬼头28 分钟前
如何重装旁路由系统并优化AIStarter部署:一步步教程
java·css·github
LaoZhangAI1 小时前
Kiro vs Cursor:2025年AI编程IDE深度对比
前端·后端
止观止1 小时前
CSS3 粘性定位解析:position sticky
前端·css·css3
爱编程的喵1 小时前
深入理解JavaScript单例模式:从Storage封装到Modal弹窗的实战应用
前端·javascript
lemon_sjdk2 小时前
Java飞机大战小游戏(升级版)
java·前端·python
G等你下课2 小时前
如何用 useReducer + useContext 构建全局状态管理
前端·react.js
欧阳天羲2 小时前
AI 增强大前端数据加密与隐私保护:技术实现与合规遵
前端·人工智能·状态模式