TailWindCss 核心功能总结 - 教程

news/2026/1/18 16:44:50/文章来源:https://www.cnblogs.com/tlnshuju/p/19498719

TailWindCss 核心功能总结 - 教程

2026-01-18 16:35  tlnshuju  阅读(0)  评论(0)    收藏  举报

目录

一、为什么选择

 核心优势

1. 实用优先的原子化 CSS

2. 极致的开发体验

3. 强大的响应式设计

⚡ 效率提升

 设计系统集成

 生产优化

 现代开发友好

 移动优先理念

 团队协作优势

⚠️ 注意事项

 最佳实践建议

 生态系统

️ 第一部分总结

二、为什么AI时代,TailWindCss更受欢迎

三、项目结构化TailWindCss

四、核心用法

1、常用属性

2、自定义属性值

3、伪类选择器

4、Media

5、暗黑模式样式

6、使用自定义CSS

7、优先级

8、颜色

9、动态设置类名

10、类名里使用tailwindcss v4

@apply

@utility

@theme


一、为什么选择

官方文档:https://tailwindcss.com/

 核心优势

1. 实用优先的原子化 CSS
  • 通过组合预定义的实用类快速构建界面

  • 无需在 HTML 和 CSS 文件间频繁切换

  • 减少自定义 CSS 代码量

2. 极致的开发体验

...
...
3. 强大的响应式设计

⚡ 效率提升

开发速度

  • 减少命名纠结时间

  • 无需维护单独的 CSS 文件

  • 设计系统一致性自动保证

维护性

  • 样式与组件生命周期一致

  • 不会产生未使用的 CSS

  • 修改范围局部化

 设计系统集成

开箱即用的设计规范

  • 间距系统(p-4, m-2, gap-8)

  • 颜色系统(text-gray-700, bg-blue-500)

  • 排版层级(text-xs 到 text-6xl)

自定义配置灵活

// tailwind.config.js
module.exports = {theme: {extend: {colors: {brand: '#1D4ED8'}}}
}

 生产优化

1. 极小的生产包体积

  • PurgeCSS 自动移除未使用的样式

  • 典型项目最终 CSS 大小 <10KB

2. 性能优势

  • 减少 HTTP 请求(无需额外 CSS 文件)

  • 样式内联,渲染路径更短

 现代开发友好

组件框架完美配合

  • React/Vue/Angular/Svelte 无缝集成

  • 与组件作用域样式自然契合

热重载支持

  • 修改样式立即看到效果

  • 无需手动刷新

 移动优先理念


 团队协作优势

降低沟通成本

  • 统一的样式命名规范

  • 新人快速上手(学习曲线平缓)

  • 减少样式冲突

设计一致性

  • 设计师与开发者共用设计 token

  • 视觉一致性自动保障

⚠️ 注意事项

学习曲线

  • 需要记忆常用类名(但有很好的 IDE 插件)

  • 初始 HTML 可能看起来"杂乱"

适用场景

  • ✅ 适合:Web 应用、设计系统、原型开发

  • ⚠️ 考虑:内容为主的静态网站、已有大型 CSS 代码库

 最佳实践建议


 生态系统

丰富的工具链

  • 官方插件(Typography、Forms、Aspect Ratio)

  • 社区插件丰富

  • VS Code/WebStorm 智能提示

主流框架支持

  • Next.js、Nuxt.js、Gatsby 官方集成

  • Vite、Create React App 无缝使用

️ 第一部分总结

选择 Tailwind 当:

  • 追求开发速度和一致性

  • 团队需要统一设计语言

  • 项目需要高度定制化设计

  • 重视性能和包体积

考虑其他方案当:

  • 已有成熟的 CSS 架构

  • 需要完全控制 CSS 输出

  • 项目对 CSS 有特殊架构要求

Tailwind CSS 已经成为现代前端开发的主流选择,特别适合需要快速迭代、保持一致性和追求开发效率的项目。

二、为什么AI时代,TailWindCss更受欢迎

在AI场景下,众多明星产品都选择了Tailwind CSS作为其样式解决方案,典型的案例包括:

OpenAI 的 ChatGPT:其标志性的简洁、响应迅速的对话界面,大量使用了Tailwind CSS来实现布局和样式。
Vercel AI Playground / SDK:作为前端开发领域的领导者,Vercel在其推出的官方AI相关产品、开发工具和模板库中,首选并大力推荐使用Tailwind CSS。
Hugging Face:作为全球最大的开源AI社区和平台,其网站界面的众多组件与布局也深度整合了Tailwind CSS。
其他明星应用:诸如 MidjourneyPerplexity AIV0Dev 等众多知名AI应用的官方网站或产品界面,也都采用了Tailwind CSS作为核心的样式方案。

参考:Editor setup - Getting started - Tailwind CSS

三、项目结构化TailWindCss

项目创建时直接选择创建

像Nextjs这样的框架支持创建时直接结构化TailWindCss。

现有项目引入可直接参考:Framework guides - Tailwind CSS

使用相关开发插件提升开发速度:Tailwind CSS IntelliSense、Tailwind class sorter

四、核心用法

1、常用属性

在TailWindCss官网可以直接查询每个Css属性对应的常用尺寸或颜色等设置。

如:

size: 同时设置width和height属性

px:设置水平方向的padding

py:设置垂直方向的padding

text:设置font相关属性

......

例如:需要哪个属性直接查询对应的类名即可。


...
...

2、自定义属性值

参考:Adding custom styles - Core concepts - Tailwind CSS

格式:对应属性-[自定义值]

字体颜色:text-[xxx]

背景颜色:bg-[xxx]

内外边距:p-[xxx]、m-[xxx]

......

test tailwindcss

3、伪类选择器

hover

通过hover:设置hover时的样式

test tailwindcss

多个伪类选择器

参考:Hover, focus, and other states - Core concepts - Tailwind CSS

4、Media

设置不同屏幕大小的样式

参考:Styling with utility classes - Core concepts - Tailwind CSS

5、暗黑模式样式

参考:Styling with utility classes - Core concepts - Tailwind CSS

6、使用自定义CSS

虽然强烈建议你为更复杂的组件创建合适的模板部分,但当模板部分显得生硬时,写一些自定义CSS完全没问题。

参考:Styling with utility classes - Core concepts - Tailwind CSS


@import "tailwindcss";
@layer components {.btn-primary {border-radius: calc(infinity * 1px);background-color: var(--color-violet-500);padding-inline: --spacing(5);padding-block: --spacing(2);font-weight: var(--font-weight-semibold);color: var(--color-white);box-shadow: var(--shadow-md);&:hover {@media (hover: hover) {background-color: var(--color-violet-700);}}}
}

不过,对于比单个HTML元素更复杂的情况,我们强烈建议使用模板部分,这样样式和结构可以集中在一个地方。

7、优先级

当你添加两个针对相同CSS属性的类时,样式表后面出现的类会获胜。

当你真的需要强制某个实用类生效,且没有其他方法管理该特定性时,你可以在类名末尾添加所有声明:`!``!important`

8、颜色

参考:Colors - Core concepts - Tailwind CSS

TailWindCss提供了常用的颜色列表,并支持相应的自定义写法:

9、动态设置类名

参考:Detecting classes in source files - Core concepts - Tailwind CSS

始终使用完整的类名

始终将道具映射到静态类名

function Button({ color, children }) {const colorVariants = {blue: "bg-blue-600 hover:bg-blue-500 text-white",red: "bg-red-500 hover:bg-red-400 text-white",yellow: "bg-yellow-300 hover:bg-yellow-400 text-black",};return ;
}

10、类名里使用tailwindcss v4

参考:Functions and directives - Core concepts - Tailwind CSS

@apply

test tailwindcss

全局css里使用@apply

@import "tailwindcss";
.my-custom{@apply bg-amber-500 text-[red] py-25 px-25 size-25 m-5 hover:bg-blue-300
}

或者使用@utility

@import "tailwindcss";
@utility my-custom {@apply bg-amber-500 text-[red] py-25 px-25 size-25 m-5 hover:bg-blue-300
}

这种实现的效果和上面哪种效果一样。

@apply 主要有三个问题:

1. 可维护性问题:提取的类名会与Tailwind默认类解耦,更新时需要手动同步
2. CSS体积增加:每个@apply都会生成新的CSS规则,而不是复用现有工具类
3. 响应式/状态变体处理复杂:需要手动添加 `hover:`, `md:` 等前缀

替代方案
- 直接使用工具类(首选)
- 使用React/Vue等组件封装样式
- 特殊情况下少量使用@apply,但避免深度嵌套

Tailwind官方已将其标记为“高级功能”,不建议过度使用

@utility

工具类的主要用法:

test tailwindcss

test tailwindcss

test tailwindcss

/* global.css */ @import "tailwindcss"; @theme {--color-1: yellow;--color-2: green;--color-3: blue; } @utility my-custom-* {background-color: --value(--color-*); }

效果:这种用法就类似于tailwindcss里自定义属性值的写法了,不过这里是自定义类名。

注意这里的“*”号位置。

也可以结合主题使用:黑夜和白天两种效果。

test tailwindcss

@import "tailwindcss"; @utility theme-color {background-color: green;@variant dark {background-color: blue;} }
@theme

基本用法参考:Theme variables - Core concepts - Tailwind CSS

在自定义 CSS 中,如果你想使用 tailwind.config.js(或 v4 的 Vite 插件配置)中定义的设计令牌(如颜色、间距),可以使用 @theme 指令来保持一致性。

在@utility案例中可以使用到@theme里定义的样式值。

定义局部主题

/* 定义多个主题 */
@theme light {--color-bg: white;--color-text: black;
}
@theme dark {--color-bg: black;--color-text: white;
}
/* 切换主题 */
body {@theme light; /* 默认亮色 */
}
body.dark-mode {@theme dark; /* 暗色主题 */
}

应用实例

两种设置局部theme的方法

@theme inline {--color-background: var(--background);--color-foreground: var(--foreground);--font-sans: var(--font-geist-sans);--font-mono: var(--font-geist-mono);
}
/* 应用到特定元素 */
.element {@theme inline;
}
/* 或通过自定义属性 */
.element {theme: inline;
}

单主题系统(不需要命名)

@theme {--color-background: var(--background);/* 其他变量定义 */
}

特点:

  • 创建全局默认主题

  • 自动应用到所有元素

  • 无法创建多个主题

对比

特性命名写法 (@theme inline)不命名写法 (@theme)
作用范围局部(需要显式应用)全局(自动应用)
主题数量可创建多个不同主题只能有一个默认主题
应用方式通过 @theme 指令或 theme 属性自动生效
优先级高于全局主题基础主题

总结到此!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1178742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

向师傅学习的黄金和斐波总结二

目录一、概述二、本次策略和对应学习三、黄金和斐波那些事&#xff1f;四、感悟一、概述 本次是向师傅学习黄金和斐波第二波&#xff0c;虽然说是第二波&#xff0c;其实离第一波深度学习已经过去40天了。 2026元旦开年&#xff0c;新年新气象&#xff0c;一扫去年的所有&…

爬虫学习

爬虫 定义爬取目标(URL) 在浏览器网络部分能让我们看见真正需要的url#定义urlurl = f"https://www.mashangpa.com/api/problem-detail/1/data/?page={i}"但大多数情况我们需要携带请求头 #声明请求头----带…

STM32F0实战:基于HAL库开发【1.3】

2.2.2 STM32系统板 STM32F072VBT6微控制器采用LQFP100封装,引脚间距仅为0.5mm,这样的封装很难用手工的方法搭建系统板,所以建议使用成品的系统板或者全功能开发板来完成本书的代码测试任务。 STM32F072VBT6系统板的外观如图2-75所示,系统板电路原理可以参考本书附录A,全…

KUKA机器人KR C4 控制柜蓄电池的维护指南

KUKA机器人KR C4 控制柜蓄电池的维护指南 一、核心功能:断电瞬间的 “数据守护者” KUKA KR C4控制柜内置蓄电池,绝非普通备用电源,其核心使命是保障系统断电后的安全受控关机。当外部供电突然中断时,蓄电池立即通过电源管理板(PMB)X305接口为控制系统供电,支撑系统完成…

Java泛型---桥方法

桥方法 桥方法是为了解决类型擦除后与多态的冲突。为了理解什么是桥方法。下面举实例,假设有一个泛型类Pair,它用来保存两个值,first与second,first永远比second大。 现在,创建一个子类去继承它。 package Test;i…

自动化视频制作:深入解析 FFmpeg 图片转视频脚本

在处理大量生成的图片资产&#xff08;如 AI 生成的艺术图&#xff09;时&#xff0c;我们经常需要将它们转化为更易于分享的视频格式。手动操作不仅繁琐&#xff0c;而且难以保证每张图停留时间的精确性。本文将带你深入剖析一个自动化脚本&#xff0c;看看它是如何一键完成“…

C14-2025.1.18

XSS原理 XSS(跨站脚本攻击)漏洞是一种常见的安全漏洞,其原理是攻击者通过向网页中注入恶意脚本代码 (JavaScript代码) ,当其他用户访问该页面时,浏览器会执行这些脚本,从而盗取用户信息(如Cookie)、劫持会话…

AI论文写作效率飙升200%:从零到一9款工具实操指南,彻底告别拖延 - 麟书学长

论文写作新手常遇文档空白、修改难、查重焦虑等问题,本文对比9款AI论文工具核心能力,如一站式的图灵论文AI(30分钟出5万字初稿)、小众高效的AI论文及时雨、全学科覆盖的巨鲸写作等,还详解图灵实操步骤、其他工具指…

2026年国内专业的智能货架定制厂家推荐,钢制货架/悬臂货架/重载货架/不锈钢货架/模具架/货架,智能货架批发厂家选哪家 - 品牌推荐师

行业背景与市场趋势 随着制造业智能化升级加速,仓储物流环节对空间利用率、存取效率及数据追溯能力的要求日益严苛。智能货架作为工业4.0的核心载体,通过集成物联网、机器人及AI算法,实现从“静态存储”到“动态管理…

30、二分类和多分类的区别 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

小程序毕设选题推荐:基于Java的校园导航微信小程序的设计与实现基于springboot+微信小程序的校园导航与信息服务系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

别忽视这个16×16的小图标:Icon背后的产品逻辑,以及一款让开发者省心的制作工具

在互联网产品的世界里&#xff0c;我们常常聚焦于宏大的功能架构、流畅的交互体验、精美的视觉设计&#xff0c;却容易忽略一个看似微不足道的元素——Icon&#xff08;图标&#xff09;。尤其是网页的favicon.ico&#xff0c;那个仅仅占据浏览器标签栏1616像素的小图标&#x…

计算机小程序毕设实战-基于springboot+微信小程序的驾考在线学习与测试系统驾校预约学习系统查看教练信息、教练预约进行考试【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

小程序计算机毕设之基于springboot位置服务的城市路线分享系统小程序(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

小程序毕设项目:基于springboot位置服务的城市路线分享系统小程序(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

计算机小程序毕设实战-基于springboot+微信小程序的校园导航与信息服务系统基于微信小程序的校园信息交流平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【课程设计/毕业设计】基于小程序的位置服务的城市路线分享系统的设计与实现基于springboot位置服务的城市路线分享系统小程序【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

基于AI智能名片链动2+1模式S2B2C商城小程序的流量运营策略研究

摘要&#xff1a;在零售行业竞争日益激烈的背景下&#xff0c;流量获取与转化成为企业发展的关键。本文聚焦AI智能名片链动21模式S2B2C商城小程序这一创新商业模式&#xff0c;深入探讨其在推广产品定位、归集渠道现有流量以及拓展内外部流量方面的作用机制与实践路径。通过理论…

学霸同款2026 AI论文网站TOP8:本科生毕业论文必备测评

学霸同款2026 AI论文网站TOP8&#xff1a;本科生毕业论文必备测评 2026年学术写作工具测评&#xff1a;为何需要一份精准榜单&#xff1f; 随着AI技术在学术领域的深度应用&#xff0c;越来越多的本科生开始依赖智能写作工具辅助论文撰写。然而&#xff0c;面对市场上琳琅满目的…

分期乐购物额度闲置?安全回收指南+可可收实操拆解 - 可可收

当下消费场景中,不少人手中握着分期乐购物额度却闲置不用,想将其回收又苦于找不到安全路径。作为深耕卡券回收领域的从业者,我将站在用户视角,拆解分期乐购物额度回收的安全核心、实操细节,助力大家避开陷阱顺利回…