迟到了几年的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

相关推荐
rgeshfgreh2 分钟前
Python流程控制:从条件到循环实战
前端·数据库·python
狗头大军之江苏分军9 分钟前
告别旧生态:Ant Design 6 不再支持 IE 与现代前端趋势解读
前端·javascript·后端
C_心欲无痕10 分钟前
nginx - 开启 gzip 压缩
运维·前端·nginx
闲云一鹤15 分钟前
2026 最新 ComfyUI 教程 - 本地部署 AI 生图模型 - Z-Image-Turbo
前端·人工智能·ai编程
开开心心_Every17 分钟前
安卓后台录像APP:息屏录存片段,行车用
java·服务器·前端·学习·eclipse·edge·powerpoint
狗头大军之江苏分军20 分钟前
Ant Design 6.0 正式发布:从 V5 到 V6 有哪些变化?
前端
优弧26 分钟前
Claude 终于对普通人下手了!Cowork 发布,你的最强 AI 打工搭子来了!
前端·后端
Zoey的笔记本1 小时前
敏捷与稳定并行:Scrum看板+BPM工具选型指南
大数据·前端·数据库·python·低代码
文心快码BaiduComate1 小时前
0代码手写!体验百度Comate的“魔法”:我造了个会理解情绪的中介层
前端·程序员·前端框架
3824278271 小时前
表单提交验证:onsubmit与return详解
前端·javascript·html