Skip to content

Tailwind CSS

apply

Tailwind CSS 提供了 @apply 指令,允许开发者将多个 Tailwind 工具类应用到一个自定义的 CSS 类中。通过使用 @apply,你可以轻松地复用样式、减少重复代码并让 CSS 文件更加简洁。

1. 什么是 @apply

@apply 是 Tailwind CSS 提供的一个 CSS 指令,它允许你将 Tailwind 的工具类(utility classes)直接应用到自定义的 CSS 类中。这种方法使得在项目中定义组件样式时更加简洁和高效。

例如,假设你有一组 Tailwind 工具类,想要将它们封装成一个自定义的 CSS 类,你可以使用 @apply 来将它们组合在一起。

css
/* 使用 @apply 将 Tailwind 工具类应用到 .button 类中 */
.button {
  @apply px-4 py-2 bg-blue-500 text-white rounded-md;
}

在上面的示例中,@applypx-4, py-2, bg-blue-500, text-white, rounded-md 等多个工具类的样式应用到 .button 类中。

2. @apply 的语法

@apply 的基本语法如下:

css
@apply <utility-classes>;

你可以将多个工具类用空格分隔,直接写在规则块中。例如:

css
/* 自定义按钮样式 */
.button {
  @apply px-4 py-2 bg-blue-600 text-white rounded-lg font-bold shadow-md;
}

3. 使用场景

3.1. 创建可复用的组件样式

当你在多个地方需要使用相同的样式时,@apply 可以帮助你避免重复,保持样式的一致性。例如,为了创建一个按钮样式:

css
/* 定义一个可复用的按钮样式 */
.btn {
  @apply px-4 py-2 bg-blue-600 text-white font-semibold rounded-md;
}

/* 按钮悬停状态 */
.btn:hover {
  @apply bg-blue-700;
}

/* 按钮聚焦状态 */
.btn:focus {
  @apply outline-none ring-2 ring-blue-500;
}

3.2. 简化长样式

如果你有复杂的样式,并且需要在多个地方复用这些样式,使用 @apply 可以简化这些样式,使得 CSS 更加简洁:

css
/* 为卡片组件定义样式 */
.card {
  @apply bg-white shadow-lg rounded-lg p-6;
}

/* 卡片头部 */
.card-header {
  @apply text-xl font-bold text-gray-800 mb-4;
}

/* 卡片主体 */
.card-body {
  @apply text-gray-600;
}

这样,每次使用 .card.card-header.card-body 时,都会自动应用对应的样式。

3.3. 避免重复的工具类

假设在多个地方都需要使用相同的 Tailwind 工具类,使用 @apply 可以让你避免冗余的代码。

css
/* 定义一个通用的表单输入样式 */
.input {
  @apply border border-gray-300 rounded-lg px-4 py-2;
}

4.其他技巧

4.1. important

scss提升优先级

css
div {
   @apply text-white #{important} 
}

4.2. 使用插值3

css
$width:200px;
div {
 @apply w-[#{$width}]
}

tailwind css 样式折叠处理

配置项

显示此配置需要安装 tailwindcss 插件

image-20241115163131141

配置结果

image-20241115163425070