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

Tailwind v 中令人兴奋的更新

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

几个月前(撰写本文时),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]删除
最新教程 更多>
  • 对象拟合:IE和Edge中的封面失败,如何修复?
    对象拟合:IE和Edge中的封面失败,如何修复?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    编程 发布于2025-07-14
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 在位置2-3中:截断\ uxxxxxxxx逃脱当CSV文件包含特殊字符或Unicode的路径逃...
    编程 发布于2025-07-14
  • JavaScript计算两个日期之间天数的方法
    JavaScript计算两个日期之间天数的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    编程 发布于2025-07-14
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-07-14
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-07-14
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-07-14
  • 如何简化PHP中的JSON解析以获取多维阵列?
    如何简化PHP中的JSON解析以获取多维阵列?
    php 试图在PHP中解析JSON数据的JSON可能具有挑战性,尤其是在处理多维数组时。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    编程 发布于2025-07-14
  • 如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    从python import codecs import codecs import codecs 导入 text = codecs.decode('这狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#带有...
    编程 发布于2025-07-14
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-07-14
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-07-14
  • 如何使用“ JSON”软件包解析JSON阵列?
    如何使用“ JSON”软件包解析JSON阵列?
    parsing JSON与JSON软件包 QUALDALS:考虑以下go代码:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    编程 发布于2025-07-14
  • 反射动态实现Go接口用于RPC方法探索
    反射动态实现Go接口用于RPC方法探索
    在GO 使用反射来实现定义RPC式方法的界面。例如,考虑一个接口,例如:键入myService接口{ 登录(用户名,密码字符串)(sessionId int,错误错误) helloworld(sessionid int)(hi String,错误错误) } 替代方案而不是依靠反射...
    编程 发布于2025-07-14
  • Java中假唤醒真的会发生吗?
    Java中假唤醒真的会发生吗?
    在Java中的浪费唤醒:真实性或神话?在Java同步中伪装唤醒的概念已经是讨论的主题。尽管存在这种行为的潜力,但问题仍然存在:它们实际上是在实践中发生的吗? Linux的唤醒机制根据Wikipedia关于伪造唤醒的文章,linux实现了pthread_cond_wait()功能的Linux实现,利用...
    编程 发布于2025-07-14
  • `console.log`显示修改后对象值异常的原因
    `console.log`显示修改后对象值异常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    编程 发布于2025-07-14
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-07-14

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

Copyright© 2022 湘ICP备2022001581号-3