Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Tailwind CSS 真有那么好吗?讨厌它的前六大原因

Tailwind CSS 真有那么好吗?讨厌它的前六大原因

作者头像
前端小智@大迁世界
发布于 2024-02-12 00:29:36
发布于 2024-02-12 00:29:36
2.9K035
代码可运行
举报
文章被收录于专栏:终身学习者终身学习者
运行总次数:35
代码可运行

免费体验 Gpt4 plus 与 AI作图神器,我们出的钱 体验地址:体验

Tailwind CSS 是一个受欢迎的“实用优先”的 CSS 框架,声称可以帮助你更快、更轻松地创建自定义设计。然而,并不是每个人都对 Tailwind CSS 感到满意。事实上,有很多原因让你应该避免使用它,而坚持使用纯 CSS 或其他框架。以下是你应该讨厌 Tailwind CSS 的主要原因:

  1. 它失去了 HTML 和 CSS 的语义
  2. 它在你的 HTML 中大量添加类
  3. 它不具有可扩展性和可重用性
  4. 它生成的 CSS 文件庞大,影响性能
  5. 它只适合那些不想理解和学习 CSS 的人
  6. 它有一个庞大的库,学习普通的 CSS 更容易

1.它失去了 HTML 和 CSS 的语义

Web 开发的主要原则之一是将你的网站的结构、表现和行为分开。HTML 旨在为你的内容提供结构和含义,CSS 旨在为你的元素提供表现和外观,而 JavaScript 旨在为你的网站提供行为和交互性。

Used Link Reader 以下是文章的翻译和润色:

😡 为什么讨厌 Tailwind CSS 的前六大原因

Tailwind CSS 是一个受欢迎的“实用优先”的 CSS 框架,声称可以帮助你更快、更轻松地创建自定义设计。然而,并不是每个人都对 Tailwind CSS 感到满意。事实上,有很多原因让你应该避免使用它,而坚持使用纯 CSS 或其他框架。以下是你应该讨厌 Tailwind CSS 的主要原因:

它失去了 HTML 和 CSS 的语义 它在你的 HTML 中大量添加类 它不具有可扩展性和可重用性 它生成的 CSS 文件庞大,影响性能 它只适合那些不想理解和学习 CSS 的人 它有一个庞大的库,学习普通的 CSS 更容易

  1. 它失去了 HTML 和 CSS 的语义

Web 开发的主要原则之一是将你的网站的结构、表现和行为分开。HTML 旨在为你的内容提供结构和含义,CSS 旨在为你的元素提供表现和外观,而 JavaScript 旨在为你的网站提供行为和交互性。

然而,Tailwind CSS 违反了这一原则,将表现与结构混合在一起。而不是使用反映你的元素的目的和功能的有意义和描述性的类名,Tailwind CSS 使用的是描述它们外观的通用和难懂的类名。例如,以下是 Tailwind CSS 中的一个简单卡片组件的样子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="max-w-sm rounded overflow-hidden shadow-lg">
  <img class="w-full" src="some-image.jpg" alt="Some image">
  <div class="px-6 py-4">
    <div class="font-bold text-xl mb-2">Some title</div>
    <p class="text-gray-700 text-base">Some text</p>
  </div>
</div>

这些类名并不能告诉你关于元素的意义或功能的任何信息。它们只告诉你它们是什么样子。这使得理解和维护你的代码变得困难,因为你必须记住每个类的作用以及它如何影响你的组件的布局和设计。

与此相比,使用纯 CSS,你可以使用语义化和描述性的类名,这些类名反映了你的元素的含义和功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="card">
  <img class="card-image" src="some-image.jpg" alt="Some image">
  <div class="card-content">
    <div class="card-title">某标题</div>
    <p class="card-text">某文本</p>
  </div>
</div>

仅通过查看其类名,你就可以轻松地知道每个元素的功能,并通过编辑 CSS 文件来更改其外观。

2. 它使你的 HTML 充斥着大量的类

Tailwind CSS 的主要批评之一是它迫使你编写充斥着数十个实用程序类的 HTML,使其难以阅读和维护。例如,这是 Tailwind CSS 中的一个简单按钮的样子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
  点击我
</button>

与此相比,在纯 CSS 中,你可以使用单个类名并在单独的文件中定义样式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button class="btn-blue">
  点击我
</button>

纯 CSS 比 Tailwind CSS 更简洁和语义化。你可以轻松地通过查看其类名来知道按钮的功能,并通过编辑 CSS 文件来更改其外观。使用 Tailwind CSS,你必须记住很多类名及其含义,并且每次想要调整设计时都必须修改 HTML。

Tailwind CSS 主张将所有样式放在你的 HTML 中,而不是将它们分离到不同的文件或层中。这违反了 Web 开发的核心原则之一:关注点分离。通过将表现与内容混合,你违反了代码的模块性和可维护性。你还使在不同的上下文或设备中重用或覆盖样式变得更加困难。

3. 它不具有可扩展性和可重用性

Tailwind CSS 的另一个问题是它不具有可扩展性和可重用性。Tailwind CSS 鼓励你通过对其应用多个实用程序类来单独设置每个元素的样式。然而,这导致你的代码中出现重复和不一致,因为你必须为类似的元素重复相同的类或为不同的变体稍作更改。

例如,假设你有两个看起来相似但颜色不同的按钮:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
  蓝色按钮
</button>

<button class="bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded">
  红色按钮
</button>

两个按钮除背景颜色外都有相同的类。这意味着你必须为每个按钮重复相同的类,使你的代码冗长和多余。此外,如果你想更改按钮的某些内容,例如字体大小或边框半径,你必须在多个地方进行更改,这使得你的代码容易出错和不一致。

与此相比,在纯 CSS 中,你可以为两个按钮使用单个类名,并使用修饰符或变量进行不同的变体:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button class="btn btn-blue">
  蓝色按钮
</button>

<button class="btn btn-red">
  红色按钮
</button>

你可以为两个按钮使用单个类名,并使用修饰符或变量进行不同的变体。这使得你的代码简洁且一致,你可以在一个地方更改按钮的某些内容。

4. 它生成的 CSS 文件庞大,影响性能

Tailwind CSS 的另一个缺点是它生成的 CSS 文件庞大,可能会对你的网站性能产生负面影响。Tailwind CSS 附带了数千个实用程序类,涵盖了几乎所有可能的样式变体。然而,这些类中的大多数在你的项目中从未使用过,它们只是为你的 CSS 文件增加了不必要的膨胀。

根据官方文档,默认的 Tailwind CSS 文件大小超过 2.4 MB,对于生产网站来说太大了。即使在压缩文件后,它仍然保持在约 46 kB,这仍然比大多数其他 CSS 框架大。

为了减小文件大小,Tailwind CSS 推荐使用一个名为 PurgeCSS 的工具,该工具扫描你的 HTML 文件并从你的 CSS 文件中删除任何未使用的类。然而,这为你的构建过程增加了额外的步骤,如果 PurgeCSS 未能检测到在你的代码中动态或有条件地使用的某些类,它也可能引入错误。

  1. 它只适合那些不想理解和学习 CSS 的人

Tailwind CSS 也对你学习和理解 CSS 产生了负面影响。使用 Tailwind CSS,你实际上是依赖于一个声称是 CSS 样式替代品的框架,但实际上仍然需要你知道 CSS 样式来使用它。例如,你仍然需要知道如何使用 flexbox、grid 或 position 属性来布局你的元素,但是你不是直接在你的 CSS 文件中使用它们,而是使用模仿它们的 Tailwind CSS 类。

以下是文章的翻译:

5. 它只适合那些不想理解和学习 CSS 的人

Tailwind CSS 也对你学习和理解 CSS 产生了负面影响。使用 Tailwind CSS,你实际上是依赖于一个声称是 CSS 样式替代品的框架,但实际上仍然需要你知道 CSS 样式来使用它。例如,你仍然需要知道如何使用 flexbox、grid 或 position 属性来布局你的元素,但是你不是直接在你的 CSS 文件中使用它们,而是使用模仿它们的 Tailwind CSS 类。

这不仅令人困惑,而且容易误导。你并没有学习实际的 CSS 属性和值,而是学习 Tailwind CSS 类及其含义。这可能会让你认为你知道 CSS,但实际上,你只熟悉 Tailwind CSS。如果你遇到 Tailwind CSS 未提供你需要的类的情况,或者你想切换到另一个框架或工具,你将很难理解或编写实际的 CSS 代码。

6. 它有一个庞大的库,学习普通的 CSS 更容易

Tailwind CSS 为每种可能的场景提供了数千个实用程序类,但这也意味着你必须记住或查找所有这些类及其含义。这可能会令人不知所措,尤其是对于 Web 开发的新手来说。

此外,Tailwind CSS 并不遵循 CSS 的标准命名约定或语法。例如,它不使用破折号或驼峰命名来分隔类名中的单词,而是使用冒号或括号。它不使用百分比或像素来指定值,而是使用任意的数字或字母。这可能会使你的代码看起来不一致和不熟悉。

相比之下,学习普通的 CSS 要简单得多,也更直观。你只需要学习标准化的、得到浏览器广泛支持的基本属性和值。你还可以使用自定义属性或变量来创建符合你需求的自己的命名约定和值。你还可以使用在线资源或工具来交互式和直观地学习和练习 CSS。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue3中使用Tailwind CSS
当谈到前端开发框架时,Tailwind CSS 是一个备受瞩目的选择。它是一款功能强大且灵活的CSS框架,提供了大量的实用工具类,帮助开发者快速构建现代化的用户界面。在本篇技术博客中,我们将深入了解 Tailwind CSS 的主题和使用。
用户6297767
2023/11/21
1.1K0
Vue3中使用Tailwind CSS
解锁网页设计新境界:一文掌握Tailwind CSS
Tailwind CSS是一个高度可定制的实用工具优先的CSS框架,它提供了构建网站界面的底层CSS类,使得开发者可以通过组合这些类来快速构建出独特的设计。与传统的CSS框架(如Bootstrap或Foundation)不同,Tailwind不提供预设计的组件,而是提供原子化的、可复用的工具类,使得你可以按照自己的设计轻松地创建界面,而不必覆盖大量预设样式。
一个程序猿的异常
2024/03/18
1.3K0
解锁网页设计新境界:一文掌握Tailwind CSS
将Tailwind CSS引入前端工程项目
首先,我们需要在项目中安装Tailwind CSS。可以通过npm或Yarn进行安装:
lyushine
2024/12/04
2410
Tailwind 与 Bootstrap 的区别和使用入门
我们知道,从 Laravel 8 开始,自带前端脚手架代码默认兼容 Tailwind CSS 框架,取代了之前的 Bootstrap CSS 框架。那么 Tailwind 是什么?它与 Bootstrap 有什么区别?如何在 HTML 页面中使用?学院君将在这篇教程中给大家简单介绍下。
学院君
2023/03/03
3.9K0
Tailwind 与 Bootstrap 的区别和使用入门
CSS闯关指南:从手写地狱到“类”积木之旅|得物技术
在Web开发网页设计中,CSS(层叠样式表)扮演着至关重要的角色,它用于控制网页的布局、外观和视觉效果。CSS不仅可以美化网页的视觉表现,还可以提高网页的可访问性、可维护性和响应式设计。在我们进行网页开发的时候,CSS是必不可少的一个环节。但是在早期的纯手写CSS阶段时会存在很多的痛点,这些痛点催生了 CSS 预处理工具(如 Sass/Less)和 CSS-in-JS 方案的兴起,进入工具曙光时代,但它们本质上仍未能突破"手动编写样式规则"的范式。直到原子化 CSS 理念的回归——通过预定义的实用类(Utility Classes)组合样式,配合智能化的工具链,为解决传统 CSS 困境提供了新的思路。
得物技术
2025/05/26
1690
CSS闯关指南:从手写地狱到“类”积木之旅|得物技术
Tailwind CSS那些事儿
在回望过去,展望未来- 2024 React 生态一览表中讲到CSS时,我们提到过Tailwind CSS,并且也说会有相关的文章。
前端柒八九
2023/11/17
8820
Tailwind CSS那些事儿
ChatGPT引领你掌握网站创建的秘诀!从0开始,轻松打造自己的个性化网站!
prompt:Create a complete landing page for a start up company using HTML
JavaEdge
2023/07/21
4670
ChatGPT引领你掌握网站创建的秘诀!从0开始,轻松打造自己的个性化网站!
CSS 像素化技术应用指南及组件封装实现方案
通过上述组件封装方法,你可以在项目中方便地使用像素化效果,无论是简单的图片处理还是复杂的UI组件,都能轻松实现复古像素风格。
小焱
2025/05/27
1220
CSS 像素化技术应用指南及组件封装实现方案
Tailwind CSS,值得2024年的你一试吗?
对于那些终于找到了自己热爱的编程工作的开发者们来说,他们常常会遇到一个难题:用编程谋生固然美妽,但当你不得不反复做着相同的任务时,这份热爱还会持续吗?我们知道,编写CSS可能看起来很有趣,但如果要重复进行,情况可能就大不相同了。
前端达人
2024/01/14
8930
Tailwind CSS,值得2024年的你一试吗?
研究三天,我找到了 tailwindcss 的正确打开姿势
因为决定深度使用 tailwindcss,所以在几个群里都有跟群友们请教使用经验。结果不讨论还好,一讨论大家的兴致都特别高,有吹爆 tailwindcss 的,也有对它不屑一顾的,还有觉得 unocss 更好用的...
用户6901603
2024/06/07
2.7K1
研究三天,我找到了 tailwindcss 的正确打开姿势
tailwindcss 从0到1
Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如 flex, pt-4, text-center 和 rotate-90 这样的的类,它们能直接在脚本标记语言中组合起来,构建出任何设计
copy_left
2021/12/08
1.7K0
CodeBuddy做公众号速读助手开发
Visual Studio Code - Code Editing. Redefined
相柳
2025/05/13
1170
CodeBuddy做公众号速读助手开发
分享 6 个你需要使用 Tailwind CSS 的原因
过去,我们需要编写复杂的媒体查询来使我们的界面具备响应式能力。但是使用Tailwind CSS,实现响应式设计就像给HTML元素添加类一样简单。您可以直接在类属性中指定响应式的行为,而无需在单独的CSS文件中定义媒体查询。
前端达人
2023/08/31
6070
分享 6 个你需要使用 Tailwind CSS 的原因
让你开发更舒适的 Tailwind 技巧
使用 Tailwind CSS,我避免了在 React 项目中复制大量 CSS 文件的麻烦,使网页开发变得更加迅速高效。虽然 Tailwind 已经非常优秀,但我还是发现了一些技巧,可以进一步提升使用这个框架的体验。
前端小智@大迁世界
2024/02/12
7640
让你开发更舒适的 Tailwind 技巧
相关推荐
Vue3中使用Tailwind CSS
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档