type
status
date
slug
summary
tags
category
icon
password

1. 前言

在使用 Vue 开发时,最常用的 UI 库就是 ElementUI 或 Ant Design Vue 了。 而在开发 React 时,特别是使用 Next.js 时,就不得不考虑 Tailwind CSS 这种方案了。
使用 Tailwind CSS 就像在使用 Bootstrap,写出对应类名就能快速创建样式。如果你对CSS很有感觉,那么掌握 Tailwind CSS 只要 1 小时。
适用范围:
虽然在 React 中结合得比较紧密,但是也同样适用于其他的主流框架,例如:Vite、Nuxt、Angular,甚至是 Laravel、Ruby on Rails……
关于安装步骤就不再赘述了,官网上写得很详细了。
篇幅介绍:
  • 基础(上中下)篇:Tailwind CSS 在应用中的基本使用方法
  • 进阶篇:如何复用样式以及 Tailwind CSS 配置项
  • 框架篇:shadcn ui 的使用
  • 响应式篇:如何构建响应式网页
接下来以 3.4.1 版本为例,进入基础篇的具体内容。

2. 宽高

2.1 宽度高度

  1. 预定义数值类(w-数值h-数值
通过 w-数值h-数值 就能分别设定宽度和高度,例如:
w-1 的 1 表示 0.25 rem,即 4 px,以此类推,w-20 表示 5 rem,即 width: 80px;。同理,h-20 表示 height: 80px;
bg-blue-500 很好理解,就是 background-color 为蓝色,其中 500 表示某种饱和度的蓝色:数值越大颜色越深。
数值类
数值类
  1. 手动书写任意值(w-[]h-[]
想要更加直观可控,以 width 为例,w-20 实际上等价于:w-[80px]w-[5rem]w-[5em]
  1. 百分比(w-分子/分母h-分子/分母
百分比的有效范围为:1/2, 1/3, 2/3, 1/4, 2/4, …, 11/12,整数不在此范围,例如 2/2, 3/3 等。
  • w-1/2 👉 width: 50%;
  • w-1/3 👉 width: 33.333333%;
  • w-1/4 👉 width: 25%;
百分比
百分比
  1. w-fullw-screen
一般来说,占满宽度有两种情况。一个是占据容器的 100% 宽度,一个是占据设备屏幕的 100% 宽度。(另外还有 w-svww-lvww-dvw
  • w-full 👉 width: 100%;
  • w-screen 👉 width: 100vw;
notion image
  1. h-svhh-lvhh-dvh
在高度方面也是类似,也有 h-fullh-screen。由于设备的不同,考虑到手机 h5 之类的情况,使用以下更为灵活的发高度值:
h-svh 👉 height: 100svh;
h-svh
h-svh
h-lvh 👉 height: 100lvh;
h-lvh
h-lvh
h-dvh 👉 height: 100dvh;
h-dvh
h-dvh
在实际使用中,用起来第三种 h-dvh 会更加灵活。

2.2 最小/大宽度高度

  1. min-w-[]max-w-[]
  1. min-h-[]max-h-[]
这些一般用于响应式设计或防止溢出。下面是一个按钮文本防止宽度溢出的设计:
  • min-w-20 👉 min-width: 5rem; /* 80px */
  • inline-block 👉 display: inline-block;
  • leading-10 👉 line-height: 2.5rem; /* 40px */
  • text-center 👉 text-align: center;
min-w-20
min-w-20

2.3 size

size-* 可以快速创建出一个正方形。注意,低版本的 Tailwind CSS 可能没有这个特性。
等价于:

3. 边距

外边距、内边距、空间间隔。

3.1 margin

mr-* 为例,表示右侧的外边距。
mr-2
mr-2
其他方位:
  • mt-* 👉 margin-top: _;
  • mb-* 👉 margin-bottom: _;
  • ml-* 👉 margin-left: _;
  • mx-* 👉 margin-left: _; margin-right: _;
  • my-* 👉 margin-top: _; margin-bottom: _;
内容区块水平方向居中:
mx-auto 👉 margin: 0 auto;
内容区块水平方向居中
内容区块水平方向居中

3.2 padding

padding 部分和 margin 类似。
px-10 py-5
px-10 py-5

3.3 space

space-x-*space-y-* 写在容器上,用来控制子元素之间的间距。
  1. 水平方向排列
  1. 垂直方向排列
space-x-4 以及 space-y-4 的间距效果
space-x-4 以及 space-y-4 的间距效果

4. 边框

线宽、线类型、弧度。

4.1 线宽 + 颜色

通过 border-* 设定线宽,颜色的设置也很简单:border-颜色-数值
线宽+颜色
线宽+颜色
如果想要设定某一方向的边框:border-*-数值
  • border-t-数值 👉 border-top-width: _;
  • border-r-数值 👉 border-right-width: _;
  • border-b-数值 👉 border-bottom-width: _;
  • border-l-数值 👉 border-left-width: _;
  • border-x-数值 👉 border-left-width: _; border-right-width: _;
  • border-y-数值 👉 border-top-width: _; border-right-width: _;
注意 ⚠️:如果不加数值(例如:border-t),表示特定方向上的线宽为 1px。border-0 就是 border-width: 0px;

4.2 线类型

border-solid 👉 border-style: solid;
border-dashed 👉 border-style: dashed;
border-dotted 👉 border-style: dotted;
border-double 👉 border-style: double;
border-style
border-style

4.3 弧度

rounded 👉 border-radius: 0.25rem; /* 4px */
rounded-md 👉 border-radius: 0.375rem; /* 6px */
rounded-lg 👉 border-radius: 0.5rem; /* 8px */
rounded-full 👉 border-start-start-radius: 9999px; border-end-start-radius: 9999px;
border-radius
border-radius

5. 文本

字体(大小、对齐方式、加粗……)

5.1 字体大小

和前述章节类似,有关字体大小的相关使用也可以通过 text-数值text-[] 的方式进行:
其中,text-basetext-mdtext-[16px] 都是一样的,取浏览器的字体默认值 16px。
notion image

5.2 文本对齐方式

notion image

5.3 字体斜体与加粗

斜体与加粗
斜体与加粗

6. 颜色

颜色在之前的案例中都有接触,主要为:字体颜色、边框颜色、背景颜色、背景渐变色图像。
字体、边框、背景、不同透明度的背景颜色都很容易理解。需要提一点的是渐变色,这里需要用 from-颜色Avia-颜色Bto-颜色C 来表示从颜色 A 经过 B,最后过渡到 C 的颜色变化。
notion image

7. 总结

基础上篇从宽度高度开始逐步展现 Tailwind CSS 基本的使用规则,包括边距、边框、文本、颜色等常用的样式属性。从行文也可以看出,有了上面的铺垫,到了颜色部分其实就可以依靠以往的开发经验猜出对应的属性使用了。下篇将介绍伪类、伪元素、布局、定位等常用属性。
 
听说你还不会 Tailwind CSS(基础·中篇)Next.js 14 App Router 海底捞针我帮你做了!(下)
Eric 见嘉
Eric 见嘉
Less is more.
公告
type
status
date
slug
summary
tags
category
icon
password
💭
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

关于我
土木转行的前端开发工程师,陆续分享技术干货。
联系我
微信公众号:见嘉 Being Dev