网易首页 > 网易号 > 正文 申请入驻

全球最火开源CSS框架——Tailwind CSS 4.0正式发布

0
分享至

OSCHINA

1 月 22 日,Tailwind CSS 正式发布了 4.0 版本!

下载地址:https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.0.0
迁移指南:https://tailwindcss.com/docs/upgrade-guide
文档:https://tailwindcss.com/docs/installation/using-vite

作为全球最火的 CSS 框架(没有之一),Tailwind CSS 每周的下载量近 1200 万次。本文将简单介绍 Tailwind CSS 4.0 的新特性,并分享它的使用方法!

Tailwind CSS 4.0 新特性

  • 性能提升:使用全新的高性能引擎 Oxide,它从头开始编写,以提高构建速度。基准测试显示全量构建速度提升超 3.5 倍 ,增量构建速度提升超 8 倍,无新 CSS 的增量构建速度提升 182 倍。

  • 更好的配置体验:

    • CSS 优先配置:从 JavaScript 配置文件(tailwind.config.js)改为直接在 CSS 文件中使用@theme指令进行配置,简化了项目文件结构。

    • 简化主题配置:减少主题配置工作量,部分实用工具和变体无需配置即可使用,使主题配置更聚焦于关键设计标记。

  • 功能增强

    • CSS 主题变量:设计标记默认作为 CSS 变量,方便在运行时引用,用于内联样式或传递给动画库。

    • 原生 CSS 层叠层:使用真实 CSS 层叠层,更易控制样式优先级和交互,减少代码维护量。

    • 自动源检测:自动检测内容源,忽略.gitignore中的文件和二进制文件,可通过@source指令添加默认排除的源。

    • 内置导入支持:无需额外插件即可处理@import,与引擎紧密集成,速度更快。

    • 内置 CSS 转译:生产构建时自动通过 Lightning CSS 处理供应商前缀、现代特性转译、压缩等,可移除相关工具。

  • 新功能特性

    • 动态间距比例:从单一间距比例值派生多种间距实用工具,可自定义或禁用默认间距变量。

    • 现代化 P3 颜色调色板:默认颜色调色板从rgb升级到oklch,色彩更鲜艳,升级项目时颜色平衡保持一致。

    • 简化变量颜色:借助color-mix()函数,定义颜色变量更简单,不透明度修饰符自动生效。

    • 容器查询支持:核心支持容器查询,无需额外插件,新增@max-*变体,可堆叠变体定义查询范围。

    • 3D 变换:添加 3D 变换 API,如旋转、缩放、平移等,可控制透视和背面可见性。

    • 多种梯度增强:线性梯度支持角度值,新增梯度插值修饰符,添加圆锥和径向梯度实用工具。

    • 新增实用工具类:包括inset-shadow-*inset-ring-*field-sizing-*color-scheme-*font-stretch-*等,满足不同场景需求。

    • 变体增强:可组合变体,新增@starting-stylenot-*inertnth-*in-*等变体,open变体支持:popover-open伪类。

    • 后代变体:新增**变体,用于选择所有后代元素,结合其他变体可精准筛选。

Tailwind CSS 是什么?

Tailwind CSS 是一个实用类优先的 CSS 框架。与传统的 CSS 框架不同,它不提供预设的设计组件(如按钮、表格等),而是将 CSS 拆分成最小的、可复用的单元,即原子类。每个原子类只负责一个样式属性,这样可以完全根据自己的设计需求来构建界面,而不会受到框架本身样式的限制。

Tailwind CSS 的特点如下:

  • 实用程序优先:提供了一套低级别的CSS工具类,可以直接应用于 HTML,从而构建任何设计。这种方式与传统的预设组件的框架不同,可以创建完全自定义的设计。

  • 响应式设计:内置了对响应式设计的支持,可以通过添加前缀的方式轻松地调整不同屏幕尺寸下的样式。

  • 高度可定制:Tailwind CSS 高度可配置,通过配置文件可以修改或扩展默认的样式选项。这包括但不限于颜色、字体系列、间距、断点等,可以根据项目的需要定制化设计系统。

  • 插件生态系统:Tailwind CSS 拥有丰富的官方和社区贡献的插件,这些插件可以进一步扩展其功能,提供额外的工具类或者帮助处理复杂的UI需求。

  • 一致的设计语言:使用Tailwind CSS有助于在整个项目中维持一致的设计语言,因为所有的样式都是基于一个统一的命名约定和配置。

  • 快速原型开发:对于快速原型开发和迭代设计来说,Tailwind CSS的工具类可以迅速实现想法,而无需编写大量的CSS代码。

举个例子,传统的 CSS 这样写:


Hello, World! h2>
前端充电宝 p> div>

.card { padding: 1rem; background-color: #f9fafb; border-radius: 0.5rem; } .title { font-size: 1.25rem; font-weight: bold; margin-bottom: 0.5rem; } .content { font-size: 1rem; color: #6b7280; }

在 Tailwind CSS 中,同样的设计可以直接使用实用类实现:


Hello, World! h2>
前端充电宝 p> div>

Tailwind CSS 怎么用?准备工作
  1. 安装 Tailwind CSS:在使用之前,在终端中使用 npm 或 yarn 等工具来安装 Tailwind CSS:

# 使用 npm 安装 npm install tailwindcss # 使用 yarn 安装 yarn add tailwindcss

  1. 初始化配置文件:在终端中通过以下命令来生成 Tailwind CSS 的配置文件tailwind.config.js

npx tailwindcss init

  1. 配置 Tailwind CSS:根据项目需求配置tailwind.config.js文件。例如,指定 Tailwind 应该扫描哪些文件以提取类名,或者自定义主题颜色、字体等。

module.exports = { content: [ "./src/**/*.{html,js,jsx,ts,tsx}", ], theme: { extend: {}, // 主题配置 }, plugins: [], // 添加插件 }

  1. 创建全局样式表:创建一个CSS文件(例如./src/input.css),并在其中引入 Tailwind CSS 的基础样式、组件样式以及实用类。

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

  1. 构建 CSS 文件:确保构建工具(如 Webpack、Vite 等)能够处理 PostCSS,需要设置 Tailwind CSS 作为插件。例如,如果使用的是 Vite,可以在vite.config.js文件中添加以下配置:

import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import tailwindcss from 'tailwindcss'; export default defineConfig({ plugins: [react()], css: { postcss: { plugins: [tailwindcss()], }, }, });

  1. 使用 Tailwind CSS 类:现在就可以在HTML中使用Tailwind提供的工具类了。

import React from 'react'; function App() { return ( 

Hello, 前端充电宝!
); } export default App;

实用功能实用程序类

Tailwind CSS 的核心理念是提供一组低级别的实用程序类,这些类可以用来直接在HTML中构建完全自定义的设计,而无需编写额外的CSS。

常用的 Tailwind CSS 类如下:

  • 布局类

    • 容器类:如container,用于创建响应式的容器,它会根据屏幕大小自动调整宽度。

    • 弹性布局类:如flexflex-col(垂直排列)、flex-row(水平排列)、flex-wrap(换行)、flex-nowrap(不换行)等,用于创建弹性布局。

    • 网格布局类:如gridgrid-cols-3(3列网格)、grid-rows-2(2行网格)、gap-4(网格项间距为4)等,用于创建网格布局。

    • 对齐类:如items-center(垂直居中)、justify-center(水平居中)、center(水平和垂直居中)等,用于控制元素的对齐方式。

  • 间距类

    • 外边距类:如m-4(外边距为4)、mt-2(顶部外边距为2)、mr-auto(右侧外边距为自动)等。

    • 内边距类:如p-2(内边距为2)、py-4(垂直方向内边距为4)、px-auto(水平方向内边距为自动)等。

    • X轴间距类:如mx-auto(水平方向外边距为自动)、px-4(水平方向内边距为4)等。

    • Y轴间距类:如my-6(垂直方向外边距为6)、py-auto(垂直方向内边距为自动)等。

  • 尺寸类

    • 宽度类:如w-full(宽度为100%)、w-1/2(宽度为父容器宽度的一半)、max-w-md(最大宽度为中等屏幕大小)等。

    • 高度类:如h-screen(高度为屏幕高度)、h-16(高度为16像素)、min-h-full(最小高度为100%)等。

  • 文本类

    • 文本颜色类:如text-red-500(文本颜色为红色500)、text-black(文本颜色为黑色)等。

    • 文本大小类:如text-xl(文本大小为大号字体)、text-sm(文本大小为小号字体)等。

    • 字体粗细类:如font-bold(使用粗体字体)、font-light(使用细体字体)等。

    • 行间距类:如leading-6(行间距为6)等。

  • 背景类

    • 背景颜色类:如bg-gray-300(背景颜色为灰色300)等。

    • 背景图片类:如bg-cover(使用覆盖整个元素的背景图片)等。

    • 背景位置类:如bg-center(背景图像居中对齐)等。

    • 背景尺寸类:如bg-auto(使用原始背景图像大小)等。

  • 边框类

    • 边框颜色类:如border-red-500(边框颜色为红色500)等。

    • 边框大小类:如border-2(边框宽度为2像素)等。

    • 边框位置类:如border-l(只在元素左侧添加边框)等。

    • 圆角类:如rounded-full(使用完全圆角)等。

  • 其他类

    • 阴影类:如shadow-lg(添加大号阴影效果)等。

    • 过渡与动画类:如transition-all(全部过渡效果)、duration-1000(过渡时长为1000毫秒)、ease-in-out(过渡曲线为先慢后快再慢)等。

    • 响应式前缀类:如md:(中等屏幕及以上尺寸的前缀)、lg:(大屏幕及以上尺寸的前缀)等,用于实现响应式设计。

暗黑模式

Tailwind CSS 提供了对暗黑模式的原生支持,可以轻松地为应用添加深色主题。

要启用暗黑模式,首先需要在tailwind.config.js文件中进行配置。Tailwind 提供了三种方式来处理暗黑模式:

  • media:默认选项,基于用户的系统偏好(prefers-color-scheme)自动切换暗黑模式。当用户的系统设置为暗黑模式时,Tailwind CSS 会自动应用带有dark:前缀的样式类。

  • class:通过手动添加dark类来切换暗黑模式。这种模式允许开发者通过 JavaScript 或其他方式动态地添加或移除dark类,从而实现用户控制的暗黑模式切换。

  • false:禁用暗黑模式。

// tailwind.config.js module.exports = { darkMode: 'class', // 或者 'media' 或 false theme: { extend: {}, }, plugins: [], }

当启用了暗黑模式,可以使用dark:前缀来为特定元素指定在暗黑模式下的样式。这适用于任何 Tailwind 的工具类。


Hello World div>

如果选择了darkMode: 'class',可以通过JavaScript动态地切换暗黑模式。这通常涉及到监听用户的偏好设置或提供一个手动切换按钮。

function toggleDarkMode() { document.documentElement.classList.toggle('dark'); } // 监听用户系统偏好 if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { document.documentElement.classList.add('dark'); }

响应式

Tailwind CSS 可以通过简单的类名组合来快速创建适应不同屏幕尺寸和设备的布局。Tailwind CSS提供了丰富的响应式工具类,可以为不同设备指定特定样式。这些响应式类通常基于屏幕宽度断点来应用不同的样式规则。

  • 内置的响应式断点:Tailwind CSS 中的默认断点包括:

    • sm:- 小型屏幕(最小宽度为 640px)

    • md:- 中型屏幕(最小宽度为 768px)

    • lg:- 大型屏幕(最小宽度为 1024px)

    • xl:- 超大型屏幕(最小宽度为 1280px)

    • 2xl:- 非常大的屏幕(最小宽度为 1536px)

  • 响应式定义:可以将这些前缀添加到任何 Tailwind 工具类之前,以指定在特定屏幕尺寸下应用的样式。响应式类的语法通常为{断点}:属性-[值],例如md:w-[8%]表示在中等屏幕上宽度设为8%。


Hello World div>

  • 自定义断点:如果默认的断点不满足需求,可以在tailwind.config.js文件中自定义或扩展它们。

module.exports = { theme: { screens: { 'xs': '480px', 'sm': '640px', 'md': '768px', 'lg': '1024px', 'xl': '1280px', '2xl': '1536px', }, }, }

  • 使用容器类:为了确保页面内容在一个固定的宽度内居中,并且随着屏幕尺寸的变化自动调整宽度,可以使用 Tailwind 的container类。这个类会根据当前屏幕尺寸自动调整最大宽度,并保持水平居中。


div>

  • 流体布局与固定宽度:Tailwind 还提供了流体布局和固定宽度的工具类。例如,w-full类可以使元素宽度占满父元素,而max-w-lg类则可以限制元素的最大宽度。


div>

主题

Tailwind CSS 主题是指基于预定义样式类所创建的一组特定的样式集合,用于定义应用的整体视觉风格。

在 Tailwind CSS 中,主题的配置主要通过修改tailwind.config.js文件来实现。这个文件包含了 Tailwind CSS 的核心配置选项,如颜色、间距、断点、字体等。通过调整这些配置选项,可以定制自己的主题风格。

  • 颜色配置:在tailwind.config.js文件中,可以定义自己的颜色调色板,并指定这些颜色在 Tailwind CSS 中的使用方式。例如,可以定义主色调、辅助色调、背景色等,并指定它们在按钮、链接、文本等元素上的应用方式。

  • 间距配置:间距配置允许定义一系列预定义的间距值,这些值可以在布局和组件中使用。通过调整间距配置,可以控制元素之间的间距大小,从而优化页面的整体布局和视觉效果。

  • 断点配置:断点配置用于定义响应式设计的断点。通过指定不同的屏幕尺寸和视口宽度,可以为不同的设备和屏幕大小设置不同的样式规则。这有助于确保网页在各种设备上都能正常显示和交互。

  • 字体配置:字体配置允许指定应用中使用的字体类型、字体大小和字体样式等。通过调整字体配置,可以创建出符合品牌风格和用户体验需求的字体样式。

// tailwind.config.js module.exports = { theme: { extend: { colors: { primary: '#3490dc', secondary: '#ffed4a', }, spacing: { '96': '24rem', '128': '32rem', }, // 更多自定义... } } }

在配置了 Tailwind CSS 主题之后,可以在 HTML 中使用这些预定义的样式类来应用主题样式。例如,可以使用颜色类来设置元素的背景颜色和文本颜色,使用间距类来控制元素之间的间距大小,使用布局类来定义页面的整体布局结构等。

Tailwind CSS 插件

Tailwind CSS 插件系统可以扩展 Tailwind 的核心功能,添加新的工具类、修改现有行为或引入完全自定义的样式。

官方提供了几个非常有用的插件来扩展 Tailwind 的功能:

  • @tailwindcss/forms:为表单元素提供额外的样式和实用程序。

  • @tailwindcss/typography:用于创建美观的排版,包含对文章内容的优化样式。

  • @tailwindcss/aspect-ratio:提供aspect-ratio实用程序,用于保持元素的比例。

  • @tailwindcss/line-clamp:提供一个简单的解决方案来限制文本行数。

  • @tailwindcss/container-queries:实现基于容器查询的功能,允许根据容器大小调整样式。

除此之外,Tailwind 提供了简单的方法来创建自定义插件。这可以通过plugin函数完成,它接受两个参数:一个是添加到设计系统的函数,另一个是可选的默认配置对象。例如,添加两个新的工具类:

const plugin = require('tailwindcss/plugin') module.exports = { plugins: [ plugin(function ({ addUtilities }) { addUtilities({ '.content-auto': { 'content-visibility': 'auto', }, '.content-visible': { 'content-visibility': 'visible', }, }) }), ], }

要在项目中使用插件,需要将它们添加到tailwind.config.js文件中的plugins数组里。

module.exports = { content: ['./src/**/*.{html,js,jsx,ts,tsx}'], theme: { extend: {}, }, plugins: [ require('@tailwindcss/forms'), require('@tailwindcss/typography'), // 添加其他插件 ], }

VS Code 插件

Tailwind CSS 官方提供了一个 VS Code 插件——Tailwind CSS IntelliSense,它提供了自动完成、语法突出显示和 linting 等高级功能以增强 Tailwind 开发体验。

另外,推荐一个第三方的 VS Code 插件——Inline Fold,它的核心功能是将匹配的内容折叠成单行,从而提高代码的可读性和整洁度。这对于处理包含大量类名或属性的代码行特别有用,例如在使用 Tailwind CSS 时,类名可能会非常长且复杂,导致代码视觉结构混乱。通过 Inline Fold 可以轻松地折叠这些类名,使代码更加简洁明了。

https://talk.gitee.com/report/china-open-source-2024-annual-report.pdf

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
丁俊晖扛了19年,赵心童跪地鼓掌:这一跪,是中国斯诺克最体面的传承

丁俊晖扛了19年,赵心童跪地鼓掌:这一跪,是中国斯诺克最体面的传承

带你逛体坛
2026-04-25 15:54:08
湖人队没东契奇和里夫斯,3比0领先火箭队,球迷:火箭队,解散吧

湖人队没东契奇和里夫斯,3比0领先火箭队,球迷:火箭队,解散吧

好火子
2026-04-26 00:39:45
赖清德飞机被拒,美国急得跳脚:你连领空都不给过,我这“站台”站了个寂寞?

赖清德飞机被拒,美国急得跳脚:你连领空都不给过,我这“站台”站了个寂寞?

两岸观点
2026-04-23 12:30:15
笑疯了!西安给失业人员免费培训,评论区太扎心,一点面子都不留

笑疯了!西安给失业人员免费培训,评论区太扎心,一点面子都不留

谭谈社会
2026-04-25 22:19:12
DeepSeek+华为芯片,会是一场“灾难”?

DeepSeek+华为芯片,会是一场“灾难”?

蓝钻故事
2026-04-25 01:31:46
58岁江珊露面,150斤穿西装腚大腰圆,但脸显年轻几乎没皱纹

58岁江珊露面,150斤穿西装腚大腰圆,但脸显年轻几乎没皱纹

墨印斋
2026-04-24 16:43:38
哈兰德替补无功,多库5分钟传射救主!2-1逆转,曼城剑指三冠王

哈兰德替补无功,多库5分钟传射救主!2-1逆转,曼城剑指三冠王

我的护球最独特
2026-04-26 02:16:02
社保严查全面收紧!无数中小企业,正在为十年前的小聪明买单

社保严查全面收紧!无数中小企业,正在为十年前的小聪明买单

芳姐侃社会
2026-04-25 18:32:12
14岁儿子得抑郁症,花光30万没治好,老公上去一巴掌:装什么病

14岁儿子得抑郁症,花光30万没治好,老公上去一巴掌:装什么病

千秋文化
2026-04-25 20:39:20
4200万人断缴社保,年轻人和灵活就业群体断缴率最高,均超30%!

4200万人断缴社保,年轻人和灵活就业群体断缴率最高,均超30%!

灯锦年
2026-04-25 15:52:24
雷克萨斯全新一代ES:不做越级,而做跃级

雷克萨斯全新一代ES:不做越级,而做跃级

网上车市
2026-04-24 21:32:03
暴雨、大暴雨上线!一直下到“五一”

暴雨、大暴雨上线!一直下到“五一”

全国妇联女性之声
2026-04-25 19:58:57
伊朗巴斯基被投毒:100人中毒倒下

伊朗巴斯基被投毒:100人中毒倒下

桂系007
2026-04-25 17:29:24
美国发出宣战书!美军集结到位,21国要求本国公民立即从伊朗撤离

美国发出宣战书!美军集结到位,21国要求本国公民立即从伊朗撤离

史政先锋
2026-04-25 14:47:45
张军失联前的荒诞细节:老婆去要人

张军失联前的荒诞细节:老婆去要人

鲁八两
2026-04-25 14:43:09
山姆“爆雷”,3亿中产炸了!

山姆“爆雷”,3亿中产炸了!

新零售参考Pro
2026-04-23 16:31:50
特朗普吹大了,中国说到做到,一块H200芯片都不买,美国开始急了

特朗普吹大了,中国说到做到,一块H200芯片都不买,美国开始急了

普陀动物世界
2026-04-25 17:13:08
台媒:毛里求斯表态戳破台当局谎言

台媒:毛里求斯表态戳破台当局谎言

参考消息
2026-04-25 19:55:46
世锦赛战报:再爆大冷,世界第2惨败出局,8强决出2席!罗伯逊4-1

世锦赛战报:再爆大冷,世界第2惨败出局,8强决出2席!罗伯逊4-1

求球不落谛
2026-04-25 19:43:42
那个信了“朋友”去泰国泼水节的19岁女生,再也回不来了

那个信了“朋友”去泰国泼水节的19岁女生,再也回不来了

迷世书童H9527
2026-04-25 09:10:21
2026-04-26 04:11:00
开源中国 incentive-icons
开源中国
每天为开发者推送最新技术资讯
7705文章数 34536关注度
往期回顾 全部

科技要闻

DeepSeek V4发布!黄仁勋预言的"灾难"降临

头条要闻

媒体:美军在中东罕见高密度集结 伊朗开始调整战术

头条要闻

媒体:美军在中东罕见高密度集结 伊朗开始调整战术

体育要闻

那一刻开始,两支球队的命运悄然改变了

娱乐要闻

《我们的爸爸2》第一季完美爸爸翻车了

财经要闻

90%订单消失,中东旺季没了

汽车要闻

2026款乐道L90亮相北京车展 乐道L80正式官宣

态度原创

健康
教育
艺术
时尚
旅游

干细胞如何让烧烫伤皮肤"再生"?

教育要闻

高校重磅改革:40%课程将AI化

艺术要闻

最适合作为抖音总部的大楼,它在福建莆田!

这些穿搭适合春天!外套彩色内搭白色、裤子穿基础款,舒适大方

旅游要闻

美猴王VS水蜜桃,连云港、无锡文旅“双向奔赴”

无障碍浏览 进入关怀版