当前位置: 首页 > news >正文

Tailwind CSS 使用指南

一、什么是 Tailwind CSS

Tailwind CSS 是一个实用优先的 CSS 框架,与 Bootstrap 等组件库不同,它不提供预定义的组件,而是提供低级别的实用类,让您能够快速构建完全自定义的设计。

主要特点:

  • 实用优先:通过组合简单类名构建复杂界面

  • 响应式设计:内置响应式前缀系统

  • 高度可定制:可完全自定义设计系统

  • 生产优化:自动移除未使用的 CSS

二、安装与配置

 1.通过 CDN 使用(简单但有限制)

html<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script src="https://cdn.tailwindcss.com"></script>
</head>
<body><!-- 您的 HTML 内容 -->
</body>
</html>

 2.通过 npm 安装(推荐方式)

bashnpm install -D tailwindcss
npx tailwindcss init

  配置 tailwind.config.js

javascript/** @type {import('tailwindcss').Config} */
module.exports = {content: ["./src/**/*.{html,js}"],theme: {extend: {},},plugins: [],
}

  创建 CSS 文件(如 src/input.css):

css@tailwind base;
@tailwind components;
@tailwind utilities;

  构建 CSS:

bashnpx tailwindcss -i ./src/input.css -o ./dist/output.css --watch

三、核心概念

1.断点前缀:

断点前缀最小宽度典型设备使用场景
sm:640px小屏手机(横屏)小型平板、大屏手机
md:768px平板(竖屏)小型笔记本、平板
lg:1024px平板(横屏)、笔记本桌面端设计
xl:1280px台式机、大屏笔记本大屏桌面端
2xl:1536px大屏显示器超大屏幕

2.状态前缀:

 2.1交互状态
状态前缀触发条件使用示例
hover:鼠标悬停hover:bg-blue-600
focus:获取焦点focus:ring-2 focus:ring-blue-500
active:激活状态(点击时)active:scale-95
visited:访问过的链接visited:text-purple-600
 2.2表单状态
状态前缀触发条件使用示例
checked:复选框/单选选中checked:bg-blue-500
disabled:禁用状态disabled:opacity-50
required:必填字段required:border-red-500
invalid:输入无效invalid:border-red-500
valid:输入有效valid:border-green-500
placeholder:占位符文本placeholder:text-gray-400
 2.3分组状态
状态前缀触发条件使用示例
group-hover:父级悬停时group-hover:opacity-100
group-focus:父级聚焦时group-focus:visible
group-active:父级激活时group-active:block
2.4兄弟状态
状态前缀触发条件使用示例
peer-hover:前一个兄弟悬停peer-hover:bg-gray-100
peer-focus:前一个兄弟聚焦peer-focus:border-blue-500
peer-checked:前一个兄弟选中peer-checked:bg-blue-500
2.5结构选择器
状态前缀触发条件使用示例
first:第一个子元素first:rounded-t
last:最后一个子元素last:rounded-b
odd:奇数子元素odd:bg-gray-50
even:偶数子元素even:bg-white
only:唯一子元素only:block
empty:空元素empty:hidden
2.6媒体查询状态
状态前缀触发条件使用示例
motion-safe:用户不偏好减少动画motion-safe:animate-spin
motion-reduce:用户偏好减少动画motion-reduce:animate-none
dark:深色模式dark:bg-gray-800
print:打印样式print:text-black

3. 间距系统

 Tailwind 使用基于 4px 的缩放系统:

3.1百分比宽度
类名宽度等价 CSS
w-1/250%width: 50%;
w-1/333.333%width: 33.333%;
w-2/366.666%width: 66.666%;
w-1/425%width: 25%;
w-2/450%width: 50%;
w-3/475%width: 75%;
w-full100%width: 100%;
w-screen100vwwidth: 100vw;
3.2固定宽度(基于 rem)
类名宽度像素值
w-00rem0px
w-10.25rem4px
w-20.5rem8px
w-41rem16px
w-82rem32px
w-164rem64px
w-328rem128px
w-6416rem256px
3.3内边距 (Padding)
类名作用方向等价 CSS
p-4所有方向padding: 1rem;
px-4水平方向padding-left: 1rem; padding-right: 1rem;
py-4垂直方向padding-top: 1rem; padding-bottom: 1rem;
pt-4顶部padding-top: 1rem;
pb-4底部padding-bottom: 1rem;
pl-4左侧padding-left: 1rem;
pr-4右侧padding-right: 1rem;
3.4外边距 (Margin)
类名作用方向等价 CSS
m-4所有方向margin: 1rem;
mx-4水平方向margin-left: 1rem; margin-right: 1rem;
my-4垂直方向margin-top: 1rem; margin-bottom: 1rem;
mt-4顶部margin-top: 1rem;
mb-4底部margin-bottom: 1rem;
ml-4左侧margin-left: 1rem;
mr-4右侧margin-right: 1rem;
类名效果等价 CSS
mx-auto水平方向自动外边距margin-left: auto; margin-right: auto;
my-auto垂直方向自动外边距margin-top: auto; margin-bottom: auto;
m-auto所有方向自动外边距margin: auto;
ml-auto左侧自动外边距margin-left: auto;
mr-auto右侧自动外边距margin-right: auto;
3.5最大宽度系统:
固定宽度值
类名最大宽度像素值使用场景
max-w-00rem0px完全收起
max-w-nonenone无限制移除最大宽度
max-w-xs20rem320px超小内容
max-w-sm24rem384px小内容块
max-w-md28rem448px中等内容
max-w-lg32rem512px大内容块
max-w-xl36rem576px超大内容
max-w-2xl42rem672px2倍大内容
max-w-3xl48rem768px3倍大内容
max-w-4xl56rem896px4倍大内容
max-w-5xl64rem1024px5倍大内容
max-w-6xl72rem1152px6倍大内容
max-w-7xl80rem1280px7倍大内容
其他宽度类型
类名效果使用场景
max-w-full100%不超过父容器宽度
max-w-minmin-content最小内容宽度
max-w-maxmax-content最大内容宽度
max-w-fitfit-content适合内容宽度
max-w-prose65ch理想阅读宽度
max-w-screen-sm640px小屏幕断点
max-w-screen-md768px中等屏幕断点
max-w-screen-lg1024px大屏幕断点

4. 颜色系统

4.1最常用的颜色属性:
类别常用类用途
文本text-gray-900text-gray-600text-blue-600内容层次
背景bg-whitebg-gray-100bg-blue-500容器背景
边框border-gray-300border-blue-500边框线条
状态bg-green-100bg-red-100bg-yellow-100状态提示
4.2数字越大 = 颜色越深
50 → 100 → 200 → 300 → 400 → 500 → 600 → 700 → 800 → 900
最浅 ←─────────────────────────────────────────────→ 最深
 4.3常用搭配
  • 50-100:背景色、悬停状态

  • 200-400:边框、分隔线

  • 500-600:主要品牌色、按钮

  • 700-900:深色文本、重要内容

5.字体排版

 5.1字体大小 (Font Size)
类名字体大小行高使用场景
text-xs0.75rem1rem辅助文字、标签
text-sm0.875rem1.25rem正文小字、描述
text-base1rem1.5rem默认正文大小
text-lg1.125rem1.75rem大正文、次要标题
text-xl1.25rem1.75rem小标题
text-2xl1.5rem2rem中等标题
text-3xl1.875rem2.25rem大标题
text-4xl2.25rem2.5rem超大标题
text-5xl3rem1页面主标题
text-6xl3.75rem1展示标题
text-7xl4.5rem1特大标题
text-8xl6rem1巨幅标题
text-9xl8rem1最大标题
5.2字体粗细 (Font Weight)
类名粗细值使用场景
font-thin100极细字体
font-extralight200超细字体
font-light300细字体
font-normal400正常字体(默认)
font-medium500中等粗细
font-semibold600半粗体
font-bold700粗体
font-extrabold800超粗体
font-black900最粗体
5.3文本对齐 (Text Alignment)
类名对齐方式使用场景
text-left左对齐默认对齐方式
text-center居中对齐标题、按钮文字
text-right右对齐数字、时间
text-justify两端对齐长篇文章
5.4行高 (Line Height)
类名行高值使用场景
leading-30.75rem紧凑行高
leading-41rem紧密行高
leading-51.25rem默认行高
leading-61.5rem舒适行高
leading-71.75rem宽松行高
leading-82rem大段文本
leading-92.25rem标题行高
leading-102.5rem展示文本
leading-none1无行高
leading-tight1.25紧凑
leading-snug1.375较紧凑
leading-normal1.5正常
leading-relaxed1.625宽松
leading-loose2很宽松
5.5字母间距 (Letter Spacing)
类名间距值使用场景
tracking-tighter-0.05em更紧凑
tracking-tight-0.025em紧凑
tracking-normal0em正常(默认)
tracking-wide0.025em宽松
tracking-wider0.05em更宽松
tracking-widest0.1em最宽松
5.6文本装饰 (Text Decoration)
类名效果使用场景
underline下划线链接、重点
line-through删除线原价、已取消
no-underline无装饰移除默认下划线
overline上划线特殊标注
5.7文本变形 (Text Transform)
类名效果使用场景
uppercase全部大写标签、导航项
lowercase全部小写特殊风格
capitalize首字母大写标题、名称
normal-case正常大小写恢复默认
5.8文本溢出 (Text Overflow)
类名效果使用场景
truncate单行截断标题、列表项
overflow-ellipsis显示省略号文本截断
overflow-clip直接裁剪严格截断
5.9字体样式 (Font Style)
类名效果使用场景
italic斜体引用、强调
not-italic非斜体恢复正常
5.10垂直对齐 (Vertical Align)
类名效果使用场景
align-baseline基线对齐默认对齐
align-top顶部对齐图标对齐
align-middle居中对齐表格单元格
align-bottom底部对齐底部对齐
align-text-top文本顶部文本对齐
align-text-bottom文本底部文本对齐
5.11空白处理 (Whitespace)
类名效果使用场景
whitespace-normal正常空白默认处理
whitespace-nowrap不换行单行文本
whitespace-pre保留空白代码显示
whitespace-pre-line保留换行诗歌、地址
whitespace-pre-wrap保留空白和换行代码块
5.12文字换行 (Word Break)
类名效果使用场景
break-normal正常换行默认行为
break-words单词内换行长单词处理
break-all任意位置换行无空格文本

6.圆角相关属性:

6.1基础圆角类
类名圆角值效果使用场景
rounded-none0px无圆角直角设计
rounded-sm0.125rem小圆角轻微圆润
rounded0.25rem默认圆角标准按钮、卡片
rounded-md0.375rem中等圆角常用圆角
rounded-lg0.5rem大圆角明显圆角效果
rounded-xl0.75rem超大圆角突出圆角
rounded-2xl1rem2倍大圆角显著圆角
rounded-3xl1.5rem3倍大圆角非常圆润
rounded-full9999px完全圆角圆形、药丸形状
6.2方向性圆角
类名作用位置效果
rounded-t顶部上边两个角
rounded-r右侧右边两个角
rounded-b底部下边两个角
rounded-l左侧左边两个角
6.3单个角圆角
类名作用位置效果
rounded-tl左上角左上角圆角
rounded-tr右上角右上角圆角
rounded-br右下角右下角圆角
rounded-bl左下角左下角圆角
7.常用图标
7.1界面图标 (UI Icons)
图标类名说明用途
fa-home首页导航、主页
fa-user用户用户管理、个人中心
fa-cog齿轮设置、配置
fa-bell铃铛通知、提醒
fa-search搜索搜索功能
fa-bars汉堡菜单移动端导航
fa-times关闭关闭、取消
fa-edit编辑编辑操作
fa-trash删除删除操作
fa-plus加号添加、新建
fa-minus减号减少、收缩
7.2文件操作
图标类名说明用途
fa-file文件文档、文件
fa-folder文件夹目录、分类
fa-save保存保存操作
fa-download下载下载文件
fa-upload上传上传文件
7.3箭头方向
图标类名说明用途
fa-arrow-left左箭头返回、后退
fa-arrow-right右箭头前进、下一步
fa-arrow-up上箭头向上、顶部
fa-arrow-down下箭头向下、展开
fa-chevron-left左三角箭头折叠、收起
fa-chevron-right右三角箭头展开、更多
7.4状态指示
图标类名说明用途
fa-check对勾完成、正确
fa-exclamation感叹号警告、注意
fa-info信息提示信息
fa-question问号帮助、疑问
8.网格列数
类名列数等效 CSS
grid-cols-11 列grid-template-columns: repeat(1, minmax(0, 1fr))
grid-cols-22 列grid-template-columns: repeat(2, minmax(0, 1fr))
grid-cols-33 列grid-template-columns: repeat(3, minmax(0, 1fr))
grid-cols-44 列grid-template-columns: repeat(4, minmax(0, 1fr))
grid-cols-66 列grid-template-columns: repeat(6, minmax(0, 1fr))
grid-cols-1212 列grid-template-columns: repeat(12, minmax(0, 1fr))
9.分割线类:
9.1分隔线类
类名方向等效 CSS
divide-y垂直分隔> * + * { border-top: 1px solid }
divide-x水平分隔> * + * { border-left: 1px solid }
divide-y-0移除垂直分隔> * + * { border-top: 0 }
divide-x-0移除水平分隔> * + * { border-left: 0 }
9.2颜色变体
类名颜色值颜色
divide-gray-100#f3f4f6很浅的灰色
divide-gray-200#e5e7eb浅灰色
divide-gray-300#d1d5db中等灰色
divide-blue-200#bfdbfe浅蓝色
divide-red-200#fecaca浅红色
10.其他属性
类名效果

inset-y-0

在垂直方向上拉伸元素,使其顶部和底部都紧贴容器边缘

四、自定义配置

1.扩展主题

 在 tailwind.config.js 中:

javascriptmodule.exports = {theme: {extend: {colors: {'brand': {100: '#f0f9ff',500: '#0ea5e9',900: '#0c4a6e',}},spacing: {'128': '32rem',}},},
}

2.添加自定义类

 在 CSS 文件中:

css@layer components {.btn-primary {@apply bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded;}.card {@apply bg-white rounded-lg shadow-md p-6;}
}

五、最佳实践

1. 保持 HTML 整洁

html<!-- 推荐:使用有意义的类组合 -->
<button class="btn-primary">主要按钮</button><!-- 不推荐:类名过长 -->
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">主要按钮</button>

2. 使用 @apply 提取重复样式

css@layer components {.btn {@apply font-bold py-2 px-4 rounded;}.btn-blue {@apply btn bg-blue-500 text-white;}.btn-blue:hover {@apply bg-blue-700;}
}

3. 利用 IDE 插件

 安装 Tailwind CSS IntelliSense 插件,获得自动完成和语法高亮。

4. 优化生产构建

 确保在生产环境中使用 PurgeCSS 移除未使用的样式:

javascript// tailwind.config.js
module.exports = {content: ['./src/**/*.html','./src/**/*.js',// 添加所有使用 Tailwind 的文件],
}

六、实用示例

1.卡片组件

html<div class="max-w-sm rounded overflow-hidden shadow-lg"><img class="w-full" src="/img/card-top.jpg" alt="Sunset in the mountains"><div class="px-6 py-4"><div class="font-bold text-xl mb-2">卡片标题</div><p class="text-gray-700 text-base">卡片内容描述...</p></div><div class="px-6 pt-4 pb-2"><span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2">#标签1</span><span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2">#标签2</span></div>
</div>

2.导航栏

html<nav class="bg-gray-800"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between h-16"><div class="flex items-center"><div class="flex-shrink-0"><span class="text-white font-bold text-xl">Logo</span></div><div class="hidden md:block"><div class="ml-10 flex items-baseline space-x-4"><a href="#" class="bg-gray-900 text-white px-3 py-2 rounded-md text-sm font-medium">首页</a><a href="#" class="text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium">关于</a></div></div></div></div></div>
</nav>

七、总结

Tailwind CSS 通过实用优先的方法提供了极大的灵活性和定制能力。通过掌握核心概念、响应式设计和状态变体,您可以快速构建现代化、响应式的用户界面。记住合理提取重复样式、利用配置扩展主题,并遵循最佳实践来保持代码的可维护性。

http://www.dtcms.com/a/550226.html

相关文章:

  • Ubuntu18.04部署k8s
  • wordpress 格子主题长沙专业网站优化定制
  • 11. 深入Spring AI:格式化输出
  • seo网站推广可以自己搞吗电子商务平台建设实施方案
  • 网站建设 宜昌广州市白云区网站建设
  • TCP/IP 四层模型:网络协议的分工与协作
  • Huffman树的实现
  • 【Python办公】文件拆分工具开发实战(兼容Excelcsv)
  • 海南哪家公司做网站做的好网页游戏制作器
  • 网站后台数据库设计h5微信网站建设
  • 大厂Java面试现场揭秘:严肃面试官VS搞笑水货程序员谢飞机
  • 福州网站建设出格美容评测网站建设分析报告
  • [人工智能-大模型-119]:模型层 - 如何计算RNN的权重数量?
  • 提升网站收录建设厅注册中心网站考试报名费缴费
  • Rust 异步编程实践:用 Tokio 实现一个迷你 HTTP 服务
  • 怎么做网站调研一个网站页面设计多少钱
  • 网站文章发布建筑资料下载网
  • 网站建设初步规划书建站点
  • Rust Trait 定义与实现:从抽象到实践的深度探索
  • 【实战总结】MySQL日期加减大全:日期计算、边界处理与性能优化详解
  • 韶关手机网站建站北京网站建设公司华网天下
  • 性能对比:用 TypeScript 和 Rust 分别实现同一个算法(排序 / 搜索 / 文件处理)
  • 做网站tt0546网站好坏的指标
  • 提供企业网站建设企业网站建设公司选择分析
  • 电力电子技术 第七章——功率变换器衍变
  • Maven 项目文档
  • 网站建设的主要内容包括虚拟主机阿里云
  • 欧美免费视频网站模板沈阳做网站开发公司
  • 网站建设资料总结陕西旅游必去十大景点
  • 系统cudnn和conda环境cudnn冲突