Tailwind CSS Direktiven und Funktionen

Tailwind CSS bietet einige sehr nützliche Funktionen und Direktiven, die Entwicklern helfen, Stile besser zu verwalten und Code zu optimieren.

Durch Funktionen und Direktiven gibt Tailwind Ihnen mehr Kontrolle und Flexibilität, insbesondere beim Anpassen von Stilen, bei der Handhabung von responsivem Design und beim Erweitern von Funktionalität.

Tailwind CSS bietet eine Vielzahl von Direktiven und Funktionen, die Entwicklern helfen, Stile zu verwalten und anzupassen:

  • Nutzung@tailwindImportiert die Basisstile, Komponentenstile und Utility-Klassen von Tailwind.
  • @applyErmöglicht es Ihnen, mehrere Utility-Klassen zu benutzerdefinierten Klassen zu kombinieren, wodurch Stilduplizierung vermieden wird.
  • @layerErmöglicht es Ihnen, verschiedene Stilebenen innerhalb von benutzerdefiniertem CSS zu organisieren und zu definieren.
  • Integrierte Funktionen für Farben, Abstände, Deckkraft, Rahmenradius usw. ermöglichen es Ihnen, Stile dynamisch zu berechnen und zu generieren.

@tailwind-Direktive

@tailwindDie Direktive wird verwendet, um die drei Kernschichten von Tailwind in CSS-Dateien zu importieren:base, componentsundutilities。

  • @tailwind base: importiert die Basisstile von Tailwind (z. B. Browser-Reset-Stile).
  • @tailwind components: importiert Komponentenstile, die verwendet werden, um Basisstile für Buttons, Karten, Formulare und mehr zu definieren.
  • @tailwind utilities: importiert Utility-Klassen, den Kernbestandteil von Tailwinds Stilbibliothek, und stellt Low-Level-Utility-Klassen für Layout, Farben, Abstände, Rahmen und mehr bereit.

Diese Layer definieren alle Basisstile, Komponentenstile und Utility-Klassen, die du bei der Verwendung von Tailwind benötigst.

/* 自定义样式中引入 Tailwind 样式 */
@tailwind base;          /* 引入基础样式 */
@tailwind components;    /* 引入组件样式 */
@tailwind utilities;     /* 引入工具类 */

@apply-Direktive

@applyDie Direktive wird verwendet, um Tailwinds Utility-Klassen innerhalb benutzerdefinierter CSS-Klassen anzuwenden. Sie ermöglicht es, gemeinsame Stile zu kombinieren und dabei Tailwinds Wartbarkeit und Flexibilität zu erhalten.

.my-class {
  @apply <utility-class1> <utility-class2> ... ;
}

Beispiel

/* Benutzerdefinierte Button-Klasse */
.btn {
  @apply px-4 py-2 bg-blue-500 text-white rounded-lg;
}

/* Benutzerdefinierte Warn-Button-Klasse */
.btn-warning {
  @apply px-4 py-2 bg-yellow-500 text-black rounded-lg;
}

Indem Sie@apply, kannst du gängige Klassen in einer benutzerdefinierten CSS-Klasse kombinieren, sodass sie wiederverwendet werden können.

@layer-Direktive

@layerDie Direktive wird verwendet, um Layer in Tailwind zu definieren, hauptsächlich zur Organisation benutzerdefinierter Erweiterungsstile. Sie wird häufig verwendet, um benutzerdefinierte Komponenten, Utility-Klassen usw. zu erstellen und die Struktur von CSS-Dateien übersichtlich zu halten.

  • @layer components: definiert benutzerdefinierte Komponenten.
  • @layer utilities: definiert benutzerdefinierte Utility-Klassen.
  • @layer base: definiert Basisstile.

Syntax:

@layer components {
  /* 在这里定义自定义的组件类 */
}

@layer utilities {
  /* 在这里定义自定义的工具类 */
}

Beispiel

/* Definiere eine benutzerdefinierte Button-Komponente */
@layer components {
  .btn {
    @apply px-4 py-2 bg-blue-500 text-white rounded-lg;
  }
}

/* Definiere eine benutzerdefinierte Utility-Klasse */
@layer utilities {
  .no-scrollbar {
    @apply overflow-hidden;
  }
}

@import-Direktive

In Tailwind CSS kannst du außerdem@import-Direktive verwenden, um andere CSS-Dateien zu importieren. Obwohl Tailwind selbst die häufige Verwendung von@import, unterstützt es diese Funktion dennoch.

Syntax:

@import '<path-to-file>';

Tailwind CSS Funktionen

Funktionen in Tailwind CSS werden hauptsächlich verwendet, um Stile dynamisch zu generieren, wie Berechnungen für Farben, Deckkraft, Größen usw. Sie ermöglichen mehr Berechnung und Kontrolle in Konfigurationsdateien oder benutzerdefinierten Stilen.

Farbfunktionen

Tailwind bietet einige integrierte Farbfunktionen, mit denen verschiedene Varianten einer Farbe erzeugt werden können (wie Abdunkeln, Aufhellen usw.).

  • darken(): dunkelt eine Farbe ab.
  • lighten(): hellt eine Farbe auf.
  • opacity(): legt die Deckkraft einer Farbe fest.

Beispiel

/* Verwende die lighten-Funktion, um eine Farbe aufzuhellen */
.bg-custom-lighten {
  background-color: lighten(#3490dc, 10%);
}

/* Verwende die darken-Funktion, um eine Farbe abzudunkeln */
.bg-custom-darken {
  background-color: darken(#3490dc, 10%);
}

/* Verwenden Sie die opacity-Funktion, um die Transparenz festzulegen */
.bg-custom-opacity {
  background-color: rgba(52, 144, 220, 0.8);
}

Abstandsfunktionen

Tailwind bietetrem, px, emFunktionen für Einheiten wie ... Sie können sie verwenden, um dynamische Größen und Abstandswerte zu berechnen.

Beispiel

/* Verwenden Sie die rem-Funktion, um den Abstand basierend auf der Schriftgröße des Wurzelelements festzulegen */
.margin-4 {
  margin: rem(4);
}

/* Verwenden Sie die px-Funktion, um den Abstand festzulegen */
.padding-10px {
  padding: px(10);
}

Border-Radius-Funktionen

In Tailwind CSS kannst du auch Funktionen verwenden, um den Border-Radius festzulegen. Verwende zum Beispielradius()um verschiedene Border-Radien zu berechnen.

Beispiel

/* Verwende die radius-Funktion, um den Border-Radius festzulegen */
.rounded-custom {
  border-radius: radius(8px);
}

Benutzerdefinierte Funktionen

Tailwind CSS ermöglicht es dir, benutzerdefinierte Funktionen zu definieren und zu verwenden. Du kannsttailwind.config.jsVerwenden Siethemedie Funktion, um auf das Design-System von Tailwind zuzugreifen und es zu manipulieren.

Beispiel

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        'custom-green': '#1064B9', // Farbcodes direkt verwenden
      },
      spacing: {
        '1/3': '33.333333%',  // Benutzerdefinierte Abstandseinheiten
      },
    },
  },
};

Gängige integrierte Funktionen in Tailwind CSS

Tailwind CSS bietet viele integrierte Funktionen, die dir bei Berechnungen helfen, wenn du benutzerdefinierte Stile erstellst.

Hier sind einige gängige integrierte Funktionen:

FunktionBeschreibungBeispiel
rem()Konvertiert den angegebenen Pixelwert inremEinheit, basierend auf der Schriftgröße des Wurzelelements (Standard 16px).rem(16) → 1rem
em()Konvertiert den angegebenen Pixelwert inemEinheit, basierend auf der Schriftgröße des aktuellen Elements.em(16) → 1em
px()Konvertiert den angegebenen Wert inpxEinheit.px(16) → 16px
calc()Verwende in Tailwind CSS die CSS-calc()Funktion für dynamische Berechnungen.calc(100% - 20px)
min()Nimmt das Minimum von zwei Werten.min(10px, 5vw) → 5vw
max()Ermittelt das Maximum von zwei Werten.max(10px, 5vw) → 10px
clamp()Generiert eineclamp()Funktion, die häufig zum Festlegen responsiver Schriftgrößen und Abstände verwendet wird.clamp(1rem, 5vw, 3rem)→ Generiert dynamisch responsive Schriftgrößen
theme()Greift auf Theme-Werte in der Tailwind-Konfiguration zu (wie Farben, Abstände, Schriften usw.).theme('colors.blue.500') → #3b82f6
screen()Gibt den passenden Bildschirmgrößen-Breakpoint für responsives Design zurück.screen('md') → @media (min-width: 768px)

rem()-Beispiel:

/* 将数字 16 转换为 rem 单位 */
.my-class {
  font-size: rem(16);  /* 结果为 1rem */
}

em()-Beispiel:

/* 将数字 16 转换为 em 单位 */
.my-class {
  padding: em(16);  /* 结果为 1em */
}

px()-Beispiel:

/* 使用 px() 函数生成固定像素 */
.my-class {
  margin: px(16);  /* 结果为 16px */
}

calc()-Beispiel:

/* 使用 calc() 函数动态计算 */
.my-class {
  width: calc(100% - px(20));  /* 结果为 100% - 20px */
}

theme()-Beispiel:

/* 使用 theme() 函数访问 Tailwind 主题配置 */
.my-class {
  background-color: theme('colors.green.500');  /* 结果为 #1064B9 */
}

clamp() Beispiel:

/* 使用 clamp() 设置字体大小,基于视口宽度变化 */
.my-class {
  font-size: clamp(1rem, 5vw, 3rem);  /* 最小 1rem,最大 3rem,视口宽度介于其间时动态变化 */
}

Verwendung von Bedingungsoperatoren und Funktionskombinationen

In Tailwind können viele Funktionen mit Bedingungsoperatoren verwendet werden. In Kombination mit responsivem Design und Statusklassen (wie z. B.hover:, focus:), können Sie diese Stile dynamisch anwenden.

Zum Beispiel können Sie@applymit responsivem Design kombinieren, um bestimmte Funktionen zu erreichen:

Beispiel

/* Benutzerdefinierte Stile, die responsives Design und Statusklassen kombinieren */
.button {
  @apply py-2 px-4 bg-blue-500 text-white rounded-md;
}

/* Auf mittleren Bildschirmen wird die Hintergrundfarbe des Buttons grün */
@media (min-width: 768px) {
  .button:hover {
    background-color: #4882BB; /* Tailwinds grüne Farbe verwenden */
  }
}
Andere Erweiterungen