”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Tailwind v 中令人兴奋的更新

Tailwind v 中令人兴奋的更新

发布于2024-12-22
浏览:154

几个月前(撰写本文时),Tailwind CSS 开源了其在 Tailwind CSS v4.0 上的工作。 (您可以在 GitHub 上找到它)。

最近,Tailwind 宣布了 Tailwind CSS 4 的公开 beta,在本文中我将介绍新版本的亮点。那么让我们开始吧!

一般结构变化

Tailwind 对其发动机进行了重新设计,大大提高了性能。完整构建速度高达 5 倍,增量构建速度高达 100 倍(您没看错)。

Tailwind v4 也有统一的工具链。还记得必须在所有 Tailwind 项目中安装 autoprefixer 和 postcss 吗?以后再也不用这样了!

Tailwind 采用了一种有趣的配置方法,从 JS 配置文件转向 CSS 配置。这意味着您将直接在 CSS 中配置插件、主题和其他行为。

Tailwind 还获得了对 CSS 最新功能的支持。

Exciting updates in Tailwind v�

CSS 有新徽标(和新功能)! ?

最佳代码 ・ 11 月 23 日

#css #webdev #编程 #讨论

现在,总体变化已经完成,让我们看看 Tailwind 具体添加了哪些内容!


新功能?

如果您想尝试 Tailwind v4,请查看 v4(测试版)的入门文档。

如果您想轻松升级项目,只需运行 npx @tailwindcss/upgrade@next,Tailwind 就会为您完成。 小心!可能会有重大变化。

颜色

Tailwind v4 调色板基于 oklch 而不是 rgb。 RGB 颜色系统在跨屏幕的一致性和活力方面有点限制。由于 oklch 颜色系统现已得到广泛支持,Tailwind v4 将利用它!

Exciting updates in Tailwind v�

容器查询

Tailwind v4 现在默认支持容器查询。如果你不知道什么是容器查询,让我解释一下。

您知道 Tailwind 中的 md:、sm: 等内容可以让您自定义在不同屏幕尺寸上应用的 CSS 吗?
在这些情况下,类指的是窗口的大小。通过容器查询,它们可以改为引用容器的大小。

在上面的示例中,网格将有 3 列 - 不是当 窗口 达到小尺寸时,而是当 容器 达到小尺寸时。正如您可以想象的,这在响应式布局中非常方便。

场地大小

field-sizing 还不是普遍支持的 CSS 功能,但如果它得到支持,那就太棒了!您可以仅使用 CSS,而不需要 JS 创建自动调整大小的文本区域。
并且 Tailwind v4 支持它!

在 Tailwind 网站上尝试演示。
现在,您只需将 field-sizing-content 类添加到文本区域即可使用它。

后代更新

Tailwind stable(您可能不知道这一点)有一个 * 变体,允许您针对具有类的元素的 direct 子元素。例如:

Tailwind v4 中的新 ** 变体将针对 所有后代

插入阴影(和环)

现在使用 inset-shadow 和 inset-ring 类可以轻松地在元素上创建插图阴影和圆环。




Exciting updates in Tailwind v�


还有更多!

如果您想查看所有新增内容,请访问 https://tailwindcss.com/docs/v4-beta 并查看它们!

这篇文章是#discuss 文章!这就是为什么我保持简短的原因;我想知道你的想法!
我知道你们中很多讨厌 Tailwind 的人可能会给我一些反馈?
肯定有一些有争议的新功能,我想得到一些意见?

总结:发表评论!


感谢您的阅读!
最佳代码

版本声明 本文转载于:https://dev.to/best_codes/exciting-updates-in-tailwind-version-4-40i0?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    在时间戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源于遗留实现的关注,这些限制需要对当前的_timestamp功能进行特定的实现。 创建表`foo`( `Productid` int(10)unsigned not n...
    编程 发布于2025-04-29
  • 为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    在CSS 问题:不正确的代码: 全球范围将所有余量重置为零,如提供的代码所建议的,可能会导致意外的副作用。解决特定的保证金问题是更建议的。 例如,在提供的示例中,将以下代码添加到CSS中,将解决余量问题: body H1 { 保证金顶:-40px; } 此方法更精确,避免了由全局保证金重置引...
    编程 发布于2025-04-29
  • Java数组中元素位置查找技巧
    Java数组中元素位置查找技巧
    在Java数组中检索元素的位置 利用Java的反射API将数组转换为列表中,允许您使用indexof方法。 (primitives)(链接到Mishax的解决方案) 用于排序阵列的数组此方法此方法返回元素的索引,如果发现了元素的索引,或一个负值,指示应放置元素的插入点。
    编程 发布于2025-04-29
  • 如何高效地在一个事务中插入数据到多个MySQL表?
    如何高效地在一个事务中插入数据到多个MySQL表?
    mySQL插入到多个表中,该数据可能会产生意外的结果。虽然似乎有多个查询可以解决问题,但将从用户表的自动信息ID与配置文件表的手动用户ID相关联提出了挑战。使用Transactions和last_insert_id() 插入用户(用户名,密码)值('test','test...
    编程 发布于2025-04-29
  • 如何有效地选择熊猫数据框中的列?
    如何有效地选择熊猫数据框中的列?
    在处理数据操作任务时,在Pandas DataFrames 中选择列时,选择特定列的必要条件是必要的。在Pandas中,选择列的各种选项。选项1:使用列名 如果已知列索引,请使用ILOC函数选择它们。请注意,python索引基于零。 df1 = df.iloc [:,0:2]#使用索引0和1 的 ...
    编程 发布于2025-04-29
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-04-29
  • 如何有效地转换PHP中的时区?
    如何有效地转换PHP中的时区?
    在PHP 利用dateTime对象和functions DateTime对象及其相应的功能别名为时区转换提供方便的方法。例如: //定义用户的时区 date_default_timezone_set('欧洲/伦敦'); //创建DateTime对象 $ dateTime = ne...
    编程 发布于2025-04-29
  • 在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8表中将latin1字符转换为utf8 ,您遇到了一个问题,其中含义的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致电。为了解决此问题,您正在尝试使用“ mb_convert_encoding”和“ iconv”转换受...
    编程 发布于2025-04-29
  • 如何简化PHP中的JSON解析以获取多维阵列?
    如何简化PHP中的JSON解析以获取多维阵列?
    php 试图在PHP中解析JSON数据的JSON可能具有挑战性,尤其是在处理多维数组时。要简化过程,建议将JSON作为数组而不是对象解析。执行此操作,将JSON_DECODE函数与第二个参数设置为true:[&&&&& && &&&&& json = JSON = JSON_DECODE($ j...
    编程 发布于2025-04-29
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-04-29
  • 为什么使用Firefox后退按钮时JavaScript执行停止?
    为什么使用Firefox后退按钮时JavaScript执行停止?
    导航历史记录问题:JavaScript使用Firefox Back Back 此行为是由浏览器缓存JavaScript资源引起的。要解决此问题并确保在后续页面访问中执行脚本,Firefox用户应设置一个空功能。 警报'); }; alert('inline Alert')...
    编程 发布于2025-04-29
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示 仅通过Python的MlStripper 来简化剥离过程,Python Standard库提供了一个专门的功能,MLSTREPERE,MLSTREPERIPLE,MLSTREPERE,MLSTREPERIPE,MLSTREPERCE,MLST...
    编程 发布于2025-04-29
  • Java开发者如何保护数据库凭证免受反编译?
    Java开发者如何保护数据库凭证免受反编译?
    在java 在单独的配置文件保护数据库凭证的最有效方法中存储凭据是将它们存储在单独的配置文件中。该文件可以在运行时加载,从而使登录数据从编译的二进制文件中远离。使用prevereness class import java.util.prefs.preferences; 公共类示例{ 首选项...
    编程 发布于2025-04-29
  • 如何避免Go语言切片时的内存泄漏?
    如何避免Go语言切片时的内存泄漏?
    ,a [j:] ...虽然通常有效,但如果使用指针,可能会导致内存泄漏。这是因为原始的备份阵列保持完整,这意味着新切片外部指针引用的任何对象仍然可能占据内存。 copy(a [i:] 对于k,n:= len(a)-j i,len(a); k
    编程 发布于2025-04-29
  • 哪种在JavaScript中声明多个变量的方法更可维护?
    哪种在JavaScript中声明多个变量的方法更可维护?
    在JavaScript中声明多个变量:探索两个方法在JavaScript中,开发人员经常遇到需要声明多个变量的需要。对此的两种常见方法是:在单独的行上声明每个变量: 当涉及性能时,这两种方法本质上都是等效的。但是,可维护性可能会有所不同。 第一个方法被认为更易于维护。每个声明都是其自己的语句,使其...
    编程 发布于2025-04-29

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3