当前位置:首页 > 科技  > 软件

六个讨厌 Tailwind CSS 的理由

来源: 责编: 时间:2023-09-28 15:53:02 330观看
导读作者丨Vitalii Shevchuk编译丨诺亚Tailwind CSS是一个流行的实用主义优先的CSS框架,声称可以帮助你更快更容易地创建自定义设计。然而,有时候Tailwind CSS并不那么令人满意。事实上,有很多原因可以解释为什么你应该避免

作者丨Vitalii ShevchukrPh28资讯网——每日最新资讯28at.com

编译丨诺亚rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

Tailwind CSS是一个流行的实用主义优先的CSS框架,声称可以帮助你更快更容易地创建自定义设计。然而,有时候Tailwind CSS并不那么令人满意。事实上,有很多原因可以解释为什么你应该避免使用它,而坚持使用纯CSS或其他框架。以下是六个可能会让你讨厌Tailwind CSS的原因。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

1. 它失去了HTML和CSS的语义rPh28资讯网——每日最新资讯28at.com

2. 它用大量的类污染了你的HTMLrPh28资讯网——每日最新资讯28at.com

3. 它不是可伸缩和可重用的rPh28资讯网——每日最新资讯28at.com

4. 它产生巨大的CSS文件,损害性能rPh28资讯网——每日最新资讯28at.com

5. 它只适合那些不想理解和学习CSS的人rPh28资讯网——每日最新资讯28at.com

6. 它有一个巨大的库,更容易地学习普通的CSSrPh28资讯网——每日最新资讯28at.com

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

rPh28资讯网——每日最新资讯28at.com

网站开发的主要原则之一是将网站的结构、表现和行为分开。HTML用于提供内容的结构和含义,CSS用于提供元素的表示和外观,JavaScript用于提供网站的行为和交互性。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

然而,Tailwind CSS违背了这一原则,因为它将表示与结构混合在一起。Tailwind CSS没有使用有意义和描述性的类名来反映元素的用途和功能,而是使用一般性和隐晦的类名来描述它们的外观。例如,在Tailwind CSS中,一个简单的卡片组件是这样的:rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

<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>

rPh28资讯网——每日最新资讯28at.com

类名不会告诉你任何有关元素的含义或功能的信息。他们只告诉你他们长什么样。这使得理解和维护代码变得困难,因为你必须记住每个类的作用以及它们如何影响组件的布局和设计。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

与普通CSS相比,在普通CSS中,你可以使用语义和描述性的类名来反映元素的含义和功能:rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

<div class="card">  <img class="card-image" src="some-image.jpg" alt="Some image">  <div class="card-content">    <div class="card-title">Some title</div>    <p class="card-text">Some text</p>  </div></div>

rPh28资讯网——每日最新资讯28at.com

通过查看每个元素的类名,你可以很容易地知道每个元素的作用,还可以通过编辑CSS文件来更改其外观。rPh28资讯网——每日最新资讯28at.com

2、它用大量的类污染了你的HTML

rPh28资讯网——每日最新资讯28at.com

对Tailwind CSS的一个主要批评是,它迫使你编写由几十个实用程序类组成的HTML,使其难以阅读和维护。例如,在Tailwind CSS中,一个简单的按钮是这样的:rPh28资讯网——每日最新资讯28at.com

<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">  Click me</button>

rPh28资讯网——每日最新资讯28at.com

与普通CSS相比,在普通CSS中,你可以使用单个类名并在单独的文件中定义样式:rPh28资讯网——每日最新资讯28at.com

<button class="btn-blue">  Click me</button>

rPh28资讯网——每日最新资讯28at.com

普通CSS比Tailwind CSS更简洁和语义化。通过查看按钮的类名,可以很容易地知道按钮的作用,还可以通过编辑CSS文件更改按钮的外观。使用Tailwind CSS时,你必须记住大量的类名及其含义,并且每次想要调整设计时都必须修改HTML。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

Tailwind CSS提倡将所有样式放在HTML中,而不是将它们分离到不同的文件或层中。这违背了web开发的核心原则之一:关注点分离。将表示与内容混合在一起,就违反了代码的模块化和可维护性。在不同的上下文中或设备中重用或重写样式也变得更加困难。rPh28资讯网——每日最新资讯28at.com

3、它不是可伸缩和可重用的

rPh28资讯网——每日最新资讯28at.com

Tailwind CSS的另一个问题是它不具有可扩展性和可重用性。Tailwind CSS鼓励你通过对每个元素应用多个实用工具类来对其单独设置样式。但是,这会导致代码中的重复和不一致,因为你必须为类似的元素重复相同的类,或者为不同的变体稍微更改它们。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

例如,假设你有两个看起来相似但颜色不同的按钮:rPh28资讯网——每日最新资讯28at.com

<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">  Blue button</button><button class="bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded">  Red button</button>

rPh28资讯网——每日最新资讯28at.com

除了背景颜色不同,两个按钮都有相同的类。这意味着你必须为每个按钮重复相同的类,使你的代码冗长和冗余。此外,如果你想要更改按钮的某些内容,例如字体大小或边框半径,则必须在多个地方进行更改,这会使代码容易出现错误和不一致。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

与普通CSS相比,在普通CSS中,你可以为两个按钮使用一个类名,并为不同的变体使用修饰符或变量:rPh28资讯网——每日最新资讯28at.com

<button class="btn btn-blue">  Blue button</button><button class="btn btn-red">  Red button</button>

rPh28资讯网——每日最新资讯28at.com

你可以为两个按钮使用一个类名,并为不同的变体使用修饰符或变量。这使你的代码简洁一致,并且你可以在一个地方更改有关按钮的某些内容。rPh28资讯网——每日最新资讯28at.com

4、它产生巨大的CSS文件,损害性能

rPh28资讯网——每日最新资讯28at.com

Tailwind CSS的另一个缺点是它会生成巨大的CSS文件,这会对网站的性能产生负面影响。Tailwind CSS提供了数以千计的实用程序类,它们几乎涵盖了所有可能的样式变化。然而,这些类中的大多数都不会在你的项目中使用,它们只会给你的CSS文件增加不必要的膨胀。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

根据官方文档,默认的Tailwind CSS文件大小超过2.4 MB,这对于生产网站来说太大了。即使在缩小和压缩文件之后,它仍然保持在46 kB左右,这仍然比大多数其他CSS框架大。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

为了减少文件的大小,Tailwind CSS建议使用一个名为PurgeCSS的工具,它可以扫描HTML文件,并从CSS文件中删除任何未使用的类。然而,这为你的构建过程增加了一个额外的步骤,并且如果PurgeCSS未能检测到在你的代码中动态地或有条件地使用的一些类,它也会引入错误。rPh28资讯网——每日最新资讯28at.com

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

rPh28资讯网——每日最新资讯28at.com

Tailwind CSS对你的CSS学习和理解也有负面影响。通过使用Tailwind CSS,你基本上依赖于一个声称是CSS样式替换的框架,但实际上仍然需要你了解CSS样式才能使用它。例如,你仍然需要知道如何使用flexbox、grid或position属性来布局元素,但不是直接在CSS文件中使用它们,而是必须使用模仿它们的Tailwind CSS类。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

这不仅令人困惑,而且具有误导性。你不是在学习实际的CSS属性和值,而是学习Tailwind CSS类及其含义。这可能会让你认为你了解CSS,但实际上,你只熟悉Tailwind CSS。如果你遇到Tailwind CSS不提供你需要的类的情况,或者如果你想切换到另一个框架或工具,你将很难理解或编写实际的CSS代码。rPh28资讯网——每日最新资讯28at.com

6、它有一个巨大的库,更容易学习正常的CSS

rPh28资讯网——每日最新资讯28at.com

Tailwind CSS为每个可能的场景提供了数千个实用程序类,但这也意味着你必须记住或查找所有这些类及其含义。这可能会让人不知所措,而且非常耗时,特别是如果你是web开发的新手的话。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

此外,Tailwind CSS不遵循CSS的标准命名约定或语法。例如,它使用冒号或括号来分隔类名中的单词,而不是破折号或驼峰式大小写。它不使用百分比或像素来指定值,而是使用任意数字或字母。这会使你的代码看起来不一致和不熟悉。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

相比之下,学习普通的CSS要简单得多,也更直观。你只需要学习被标准化并被浏览器广泛支持的基本属性和值。你还可以使用自定义属性或变量来创建适合你需要的自己的命名约定和值。你还可以使用在线资源或工具以交互式和可视化的方式学习和练习CSS。rPh28资讯网——每日最新资讯28at.com

rPh28资讯网——每日最新资讯28at.com

参考链接:https://itnext.io/top-6-reasons-to-hate-tailwind-css-8009ea96e300rPh28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-11908-0.html六个讨厌 Tailwind CSS 的理由

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Htmx:重塑 Web 交互的未来

下一篇: 用了这么多年的泛型,你对它到底有多了解?

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 小米官宣:2023年上半年出货量中国第一!

    小米官宣:2023年上半年出货量中国第一!

    今日早间,小米电视官方微博带来消息,称2023年小米电视上半年出货量达到了中国第一,同时还表示小米电视的巨屏风暴即将开始。“公布一个好消息2023年#小米电视上半年出货量中国
  • 印度登月最关键一步!月船三号今晚进入环月轨道

    印度登月最关键一步!月船三号今晚进入环月轨道

    8月5日消息,据印度官方消息,月船三号将于北京时间今晚21时30分左右开始近月制动进入环月轨道。这是该探测器能够成功的最关键步骤之一,如果成功将开始围
  • 十个可以手动编写的 JavaScript 数组 API

    十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 三万字盘点 Spring 九大核心基础功能

    三万字盘点 Spring 九大核心基础功能

    大家好,我是三友~~今天来跟大家聊一聊Spring的9大核心基础功能。话不多说,先上目录:图片友情提示,本文过长,建议收藏,嘿嘿嘿!一、资源管理资源管理是Spring的一个核心的基础功能,不
  • 19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    今天这篇文章跟大家分享18个JS单行代码,你只需花几分钟时间,即可帮助您了解一些您可能不知道的 JS 知识,如果您已经知道了,就当作复习一下,古人云,温故而知新嘛。现在,我们就开始今
  • 零售大模型“干中学”,攀爬数字化珠峰

    零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 破圈是B站头上的紧箍咒

    破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
Top