Tailwind CSS 使用入门

news/2025/10/23 16:15:47/文章来源:https://www.cnblogs.com/RioTian/p/19160946

[!NOTE]

Tailwind CSS 是一个别具一格的 CSS 界面框架。用官网的一句话来介绍:Rapidly build modern websites without ever leaving your HTML。也就是只要引入 Tailwind CSS,在不需要使用任何自定义 CSS 文件的情况下就能完成一个时髦的网站界面。

最佳的入门文档还得是官网教程:Here



认识 Tailwind CSS

仅凭开头的介绍感觉还是很神奇的。事实上它的思想一点都不神奇。来看看下面这段来自官网的示例代码:

<figure class="md:flex bg-slate-100 rounded-xl p-8 md:p-0 dark:bg-slate-800"><img class="w-24 h-24 md:w-48 md:h-auto md:rounded-none rounded-full mx-auto" src="/sarah-dayan.jpg" alt="" width="384" height="512"><div class="pt-6 md:p-8 text-center md:text-left space-y-4"><blockquote><p class="text-lg font-medium">“Tailwind CSS is the only framework that I've seen scaleon large teams. It’s easy to customize, adapts to any design,and the build size is tiny.”</p></blockquote><figcaption class="font-medium"><div class="text-sky-500 dark:text-sky-400">Sarah Dayan</div><div class="text-slate-700 dark:text-slate-500">Staff Engineer, Algolia</div></figcaption></div>
</figure>

先不管这段代码的渲染结果。直接从上面的写法来看,大概就能明白 Tailwind CSS 的核心所在。其实就是把一些常用的 CSS 样式定义打散,原子化,然后使用的时候再根据需要进行重组。

如果是在大约 20 年前 CSS 样式表方兴未艾的时候就接触到 Web 开发,对这种使用方式应该会有种似曾相识的感觉。比如下面这段代码:

<div style="background:#CCC; border:1px sold #000; padding:20px;"><h1 style="color:#666; font-size:18px; border-bottom: 1px dahsed #999;">zzxworld</h1><p style="color:#999; font-size:12px;">一个自由职业者,卖橙子的码农。</p>
</div>

两相对照,就能看出其中的一些共通点。style 属性和 class 作用相同,CSS 样式值被名称所取代。真是时过境迁,没想到二十年前随着 W3C 标准兴起而摒弃的样式写法,以 Tailwind CSS 的方式复活了。

不过「存在即合理」。既然 Tailwind CSS 现在这么受欢迎,说明还是解决了一些场景下 CSS 的使用问题。

安装 Tailwind CSS

Tailwind CSS 的使用和 Bootstrap 这类 CSS 框架的使用方式有点区别。仅靠引入一个 CSS 文件并不能正常使用。原因是 Tailwind CSS 在 class 属性定义中使用了一些非标准的写法。除此之外,Tailwind 的一些高级特性也不是原始 class 属性语法能够支撑的。所以在使用 Tailwind CSS 之前,需要先安装好 Node.js 环境。然后使用 npm 命令安装 Tailwind CSS:

$ npm install tailwindcss @tailwindcss/vite

然后初始化一个配置文件:

$ npx tailwindcss init

命令执行完后,就会在当前目录下创建一个 tailwind.config.js 文件。在这个配置文件中的 content 属性下配置好 HTML 模板目录信息:

module.exports = {content: ["./*.html"],theme: {extend: {},},plugins: [],
}

之所以要配置 HTML 模板目录,是因为 Tailwind CSS 能根据需要只输出使用了的 class 样式代码,减小最终 CSS 文件的大小。

创建一个 CSS 文件,命名为 style.css,并引入 Tailwind CSS 的样式定义。文件代码如下:

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

接下来创建一个测试用的 HTML 文件,命名为 index.html,代码如下:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="public/style.css" rel="stylesheet">
</head>
<body><h1 class="h-screen w-screen table-cell align-middle text-center text-3xl font-bold underline">Hello zzxworld!</h1>
</body>
</html>

注意 link 标签的 href 属性,引用的是目前还不存在的 CSS 文件。这个文件需要使用下面的命令来生成:

$ npx tailwindcss -i ./style.css -o ./public/style.css --watch

后面加了 --watch 参数,命令执行后会一直监视当前目录下的 style.css 文件,以及 tailwind.config.js 文件中配置的模板文件改动。

在浏览器中访问这个 HTML 文件,显示的效果如下:

因为只是演示使用方法,所以这个效果有点简单。如果想体验更复杂好看的示例可以通过查看 Tailwind CSS 的官网来了解。

在 Laravel 框架中安装 Tailwind CSS

上面是自定义引入并安装 Tailwind CSS 样式库的流程步骤。对于一些成熟的后端开发框架,Tailwind CSS 的安装方式会存在一些差异。比如我常用的 Laravel。这是一个全栈开发框架,它引入 Tailwind CSS 的流程跟上面相比就存在一些区别。

首先同样是安装 Tailwind CSS,以及一些依赖项:

$ npm install -D tailwindcss postcss autoprefixer

然后初始化 Tailwind CSS 配置文件:

$ npx tailwindcss init

接下来就需要在 Laravel Mix 配置文件 webpack.mix.js 中添加相关配置代码:

mix.js("resources/js/app.js", "public/js").postCss("resources/css/app.css", "public/css", [require("tailwindcss"),]);

以及在 Tailwind CSS 配置文件 tailwind.config.js 中设置 Laravel 的模板目录和 JS 源码路径:

module.exports = {content: ["./resources/**/*.blade.php","./resources/**/*.js","./resources/**/*.vue",],theme: {extend: {},},plugins: [],
}

后面的使用就基本类似了。

按需输出

这应该是 Tailwind CSS 对我来说比较有吸引力的一点。在使用 Bootstrap 这类 CSS 框架时,即便只用了其中一小部分样式,也必须要引入一个完整的框架代码,这从数据传输和使用率来说,是很大的资源浪费。而 Tailwind CSS 很好的解决了这个问题,可以根据实际使用的样式名称只输出所需的样式代码。

还是以最上面的演示项目为例,使用这个「按需输出」功能的命令如下:

$ npx tailwindcss -i ./style.css -o ./public/style.css --minify

输出的文件信息如下:

tailwindcss-minify-output-info

可以看到大小才 1.5K。

合并 class

同样以最上面的演示项目为例,我可以看到在完成一个 HTML 标签的样式时,使用 Tailwind CSS 会不可避免的产生冗长的 class 属性值。比如其中的 H1 标签样式定义:

<h1 class="h-screen w-screen table-cell align-middle text-center text-3xl font-bold underline">Hello zzxworld!
</h1>

如果是在需要多次重复的标签上使用这段样式定义,那意味着 class 属性也是要不断重复的,这变相的增加了代码体积。Tailwind CSS 提供的 @apply 方法可以解决这个问题。

在上面示例的 style.css 文件中追加如下 CSS 代码:

.title {@apply h-screen w-screen table-cell align-middle text-center text-3xl font-bold underline;
}

然后修改 H1 标签的 class 属性值为如下样式:

<h1 class="title">Hello zzxworld!
</h1>

就这样,在效果不变的前提下,解决了样式重复使用导致的代码冗余问题。

总结

我已经习惯了只在 CSS 文件中定义样式,并推崇「语义化」的样式名称。所以对于 Tailwind CSS 一开始还不太容易接受。不过在体验了一下后,逐渐放飞了自我。

根据标签的用途来给 class 取名并不是一项容易的事情。即便是想了一个很贴切的名称,抛开维护价值,其他方面并没有任何优劣之分。所以我已经开始接受使用 Tailwind CSS 这种样式工具来开发 Web 界面。特别是对于搭建产品原型的工作,相信能带来效率方面的提升。

而且 Tailwind CSS 也提供了合并 Class 的功能,在需要的时候,我也可以通过语义化的样式名称来进行优化。按需输出 CSS 代码的方式更是降低了网络传输的开销,提升了应用的访问速度。

唯一令我担心的就是在原生 CSS 样式之外,又多了一套样式名称的记忆成本。

最后,如果你对按需输出 CSS 代码的功能感兴趣,但就是对 Tailwind CSS 无爱,可以看看这个工具:PurgeCSS。它能让你在任何 CSS 框架或代码上实现按需输出的功能。事实上 Tailwind CSS 也是基于它来实现的类似功能。

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

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

相关文章

2025 年托管班加盟品牌最新推荐排行榜:聚焦国内优质机构,为投资者精选靠谱加盟项目托管班机构加盟/儿童托管班中心加盟/课后托管班加盟/小学托管班加盟连锁推荐

引言 当前少儿课后托管需求持续攀升,托管班行业迎来发展热潮,但市场乱象也随之凸显。不少机构存在管理不规范、师资专业度不足、安全保障缺失等问题,难以满足家长对优质托管服务的需求。同时,市场上品牌数量繁杂,…

vscode创建快捷代码块,同时配置vue2和vue3的快捷代码块

文件——首选项——配置代码片段,弹出的搜索框内,输入 vue.json 之后在打开的vue.json中复制下面代码配置{// Place your snippets for vue here. Each snippet is defined under a snippet name and…

实用指南:Calico 网络插件在 K8s 集群的作用

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

终于能打出生僻字了!麒麟系统搜狗输入法完整安装指南 - 实践

终于能打出生僻字了!麒麟系统搜狗输入法完整安装指南 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

docker 离线下载安装部署

一、docker资源包下载地址1、访问 Docker 的官方下载页面:Index of linux/static/stable/x86_64/ 2、访问阿里云镜像下载页面:docker-ce-linux-static-stable-x86_64安装包下载_开源镜像站-阿里云 二、解压安装包在…

PaperReading:《Manipulating Multimodal Agents via Cross-Modal Prompt Injection》 - 详解

PaperReading:《Manipulating Multimodal Agents via Cross-Modal Prompt Injection》 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

新手使用rocky10 过程中遇到问题:忘记root密码

开篇情景:因主播手速过快,以root用户身份在家目录下使用了passwd,并且没有意识到已经在键盘上输入了一系列其他指令导致root密码出现问题。 解决方法1:重装操作系统,但会导致之前所有操作及保存文件等找不到。 解…

godot + Avalonia 渲染第三方UI

问题描述: 采用 godot + Avalonia 渲染第三方UI 的时候, 如果 需要在 3D 场景中 动态加载glb模型 的时候,在国产机器上,加载到场景的时候,如果UI 和 3D 场景都是 静止的,会导致 模型加载到场景的国产中,有几…

国标GB28181算法算力平台EasyGBS的云边协同的算力调度模式关键技术解析

国标GB28181算法算力平台EasyGBS的云边协同的算力调度模式关键技术解析在智慧城市浪潮下,海量视频监控数据在边缘侧爆发性增长,传统中心化处理模式面临带宽与算力的双重瓶颈。本文深入探讨了一种基于国标GB28181协议…

2025-10-23 cocos安装

前言:cocos是什么, cocos官网:https://www.cocos.com/ 安装第一步:前往cocos官网下载安装包==》https://www.cocos.com/creator-download下载后的安装包: 第二步:开始安装 注意:我当前的操作环境是win11,下载版…

监控系统搭建集成实例

dashboard无法导入json文件无法上传到跳板机,同时拷贝数据的长度也受到了限制服务配置[root]# cat node.ini [program:nodeexporter] command=/app/taishi/monitor/node_exporter-1.9.1.linux-amd64/node_exporter en…

WPF 和 Avalonia 开发者的 html css 前端指南 ScrollViewer 篇

本文介紹了 WPF 和 Avalonia 中的 ScrollViewer 和 html css 如何对应起来,为 html css 新手有所参考。WPF 和 Avalonia 开发者的 html css 前端指南 ScrollViewer 篇ScrollViewer 在 html css 的实现非常的简单,所以…

陈旧性瘢痕药物

陈旧性瘢痕药物Posted on 2025-10-23 16:01 无拘无束的猪 阅读(0) 评论(0) 收藏 举报作为一名资深皮肤专家,很高兴为您解答关于手臂陈旧性瘢痕的药物选择和使用问题。 对于陈旧性瘢痕(通常指形成时间较久,超过…

用EasyPlayer播国标GB28181算法算力平台EasyGBS视频流,居然比点外卖还简单

用EasyPlayer播国标GB28181算法算力平台EasyGBS视频流,居然比点外卖还简单虽然天儿转凉了,但我干活的劲头一点儿没降!最近碰到好几个客户问,怎么把咱们 EasyGBS平台发出去的视频流,放到其他播放器里看。我都给他们…

verilog - 指南

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

2025 年氙灯老化 / 紫外老化 / 冷热冲击 / 恒温恒湿 / 高低温 / 快速温变试验箱厂家推荐:柳沁仪器,多行业检测设备的优质供应伙伴

行业背景 随着科技产业升级与产品质量标准提升,环境可靠性检测成为各行业的核心环节。从航空航天的高精密零部件到消费电子的日常耐用性测试,从新能源汽车电池的极端环境验证到高校科研的精准数据获取,都离不开专业…

idea错误解决记录

1.内部映射处理器错误 报错日志:java: Internal error in the mapping processor: java.lang.NullPointerException 解决方案: 在IDEA中修改设置: Settings --> Build, Execution, Deployment --> Compiler -…

2025 年连接器厂家最新推荐榜单:覆盖多领域优质产品,为企业选购提供权威参考的国内制造商精选汽车/高速/板载/航空连接器公司推荐

引言 当前,连接器作为电子设备核心部件,在汽车电子、工业控制、医疗器械等领域需求持续攀升,国内连接器厂家数量不断增加,但市场上产品质量参差不齐、技术实力差距明显,部分厂家交付能力不足,让企业在选购时面临…

2025 年集装箱拖车供应厂家最新推荐榜,技术实力与市场口碑深度解析助力企业选品

在集装箱运输行业持续发展的背景下,企业对优质集装箱拖车供应厂家的需求日益迫切,但市场上厂家资质混杂、服务质量参差不齐,给企业选择带来极大困扰。为帮助企业精准筛选出技术过硬、口碑优良的集装箱拖车供应厂家,…