记Tailwind CSS使用
最近把之前写的一个Web项目的页面给重构了一下,使用上了Tailwind CSS,虽然之前就使用过,但是没有记录下来,这次就相当于对该技术栈进行一次总结。
介绍
借用官方描述
Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如
flex
,pt-4
,text-center
和rotate-90
这样的的类,它们能直接在脚本标记语言中组合起来,构建出任何设计。
Tailwind CSS组件库
官方组件库要钱就没写了,以上资源均来自 awesome-tailwindcss
WindiCSS
Tailwind CSS可能有些缺点,例如构建速度慢,不支持任意值,不支持属性化模式等等。如果恰好在Vue项目的话,倒是推荐使用Windi CSS,并且它完美兼容Tailwind CSS,同时新增了许多额外特性,进一步提升编码体验,同时Windi CSS对Vite有很好的集成,具体可在 官网特性 中查看,这里列举几些。
指令
使用@apply,将一系列的原子类封装成一个类下。如下
.btn {
@apply font-bold py-2 px-4 rounded;
}
更多可查看 函数与指令
可变修饰组
<div class="hover:(bg-gray-400 font-medium) bg-white font-light"/>
可以将一串hover前缀的原子类,封装在括号内。
自动值推导
在windicss中有这样的特性,可以允许自定义size,而不想tailwindcss中以整数方式,如p-2.5
对应padding: 0.625rem;
这在windicss是被支持的。
同时还可以指定size的变量,如p-4px
对应padding: 4px;
,同样对于分数形式的比例也同样是支持的。
甚至可以传递css变量的名称,如
bg-${variableName}
将转化为
background-color: var(variableName);
信息
补充: 在Tailwind CSS 3.0中,支持bg-[#bada55]
或h-[24px]
的形式,即自定义样式,方括号内为具体变量值。
属性化模式
对于一长串的class字符串,在维护的时候寻找其中的原子类特别不方便,使用属性化模式就可以写成下面这种形式
<button
bg="blue-400 hover:blue-500 dark:blue-500 dark:hover:blue-600"
text="sm white"
font="mono light"
p="y-2 x-4"
border="2 rounded blue-200"
>
Button
</button>