TailWind CSS 文檔 函數(shù)與指令

說明:此系列文章是個人對Tailwind CSS官方文檔的翻譯,不是很嚴謹,請諒解。

函數(shù)與指令

@tailwind

@tailwind指令來把 tailwind的base,components, utlitiesscreen樣式添加到自己的CSS中。

/**
* 這個指令用來注入tailwind的基礎樣式和用插件注冊的樣式
*/
@tailwind base;
/**
* 這個指令用來注入tailwind的組件類和用插件注冊的組件類
*/
@tailwind components;
/**
* 這個指令用來注入tailwind的工具類和用插件注冊的工具類
*/
@tailwind utilities;
/**
* 這個指令用來控制tailwind注冊每個工具類的響應式變體的位置
* 如果省略不寫的話,tailwind會默認把這些類添加到你的style頁面的最底部
*/
@tailwind screens;
@apply

@apply指令來將已有的工具類列入你的自定義CSS中

  1. 當你想把哪個HTML中的工具類提取到新組件中的時候,就可以用這個指令
  2. 規(guī)則可以一行列出來,也可以多行使用@apply
  3. 當然,把@apply聲明和普通的CSS聲明混在一起寫也是OK的
.btn {
    @apply font-bold py-2 px-4 rounded;
}
.btn {
    @apply font-bold;
    @appky py-2;
    @apply px-4;
    @apply rounded;
}
.btn:hover {
    apply bg-blue-700;
    transform: translateY(-1px);
}
  1. 為避免特異性問題,如果用@apply列出的規(guī)則里面如果有!important的話,!important會被自動刪除
  2. 如果想用@apply來列入一個已有的類,而且想把它!important的話,只需要把!important加在聲明的末尾就OK了
  3. 注意,如果你現(xiàn)在項目中用著Sass或者SCSS的話,就得用Sass 的插值屬性才好使
/* ?案例一 */
.foo {
    color: blue !important;
}
.bar {
    @apply foo;
}
/* 上面的相當于?? */
.bar {
    color: blue;
}
/* ?案例二 */
.btn {
    @apply font-bold py-2 px-4 rounded !important;
}
/* 相當于?? */
.btn {
    font-weight: 700 !important;
    padding-top: .5rem !important;
    padding-bottom: .5rem !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
    border-radius: .25rem !important;
}
.btn {
    @apply font-bold py-2 px-4 rounded #{!important};
}

得記住了,用@apply指令給其他工具類的偽類變體、響應式變體在行內(nèi)進行列舉是行不通的。而是應該將這個類的普通版本賦予到相應的偽類選擇器或新媒體查詢中。

/* 無效寫法 */
.btn {
    @apply block bg-red-500;
    @apply hover:bg-blue-500;
    @apply md:inline-block;
}

/* 正確寫法 */
.btn {
    @apply block bg-red-500;
}
.btn:hover {
    @apply bg-blue-500;
}
@screen md {
    .btn {
        @apply inline-block;
    }
}

如果你給工具類配置了前綴,但是想采用更簡潔的語法的話,可以選擇在使用@apply指令的時候省略前綴:

/* 下面兩種都是有效寫法 */
.btn {
    @apply te-font-bold tw-py-2 tw-px-4 tw-rounded;
}
.btn {
    @apply font bold py-2 px-4 rounded;
}
variants

@variants 指令可以用來生成自定義工具類的變體,諸如 responsive, hover, active之類,只需要把定義語句包裹在@variants指令中。(詳見響應式設計與偽類變體章節(jié))

@responsive

如果想要生成自定義類的響應式變體的話,可以用@responsve指令來啊包裹這些類的定義。

@responsive {
    .bg-gradient-brand {
        background-image: linear-gradient(blue, green);
    }
}
/* 根據(jù)自定義斷點,上面的代碼會生成下面的類?? */
@media (min-width: 640px){
    .sm\:bg-gradient-brand {
        background-image: linear-gradient(blue, green);
    }
    /* ... */
}
@media (min-width: 768px){
    .md\:bg-gradient-brand {
        background-image: linear-gradient(blue, green);
    }
    /* ... */
}
@media (min-width: 1024px){
    .lg\:bg-gradient-brand {
        background-image: linear-gradient(blue, green);
    }
    /* ... */
}
@media (min-width: 1280px){
    .xl\:bg-gradient-brand {
        background-image: linear-gradient(blue, green);
    }
    /* ... */
}

上面的響應式變體會在你的樣式頁面末尾被添加到tailwind已有的媒體查詢中,以確保帶有響應式前綴的類總是比規(guī)定相同CSS屬性的非響應式類更強。

@screen

@screen指令允許你通過名字來創(chuàng)建媒體查詢,而不用非得在自己的CSS里面復制他們的值。

例如,假設你在 640px 處有個sm斷點,而且你現(xiàn)在要根據(jù)這個斷點寫一些自定義CSS語句來,就不用像下邊這樣寫個復制斷點值的原生媒體查詢:

@media (min-width: 640px) {
    /* ... */
}

@screen指令的話,直接用斷點名稱來參考就行了:

@screen sm {
    /* ... */
}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 說明:此系列文章是個人對Tailwind CSS官方文檔的翻譯,不是很嚴謹,請諒解。 添加工具類 盡管tailwi...
    你當溫柔又有力量閱讀 2,411評論 0 2
  • 說明:此系列文章是個人對Tailwind CSS官方文檔的翻譯,不是很嚴謹,請諒解。 提取組件 處理重復、使工具類...
    你當溫柔又有力量閱讀 2,572評論 0 2
  • 一般的UI中CSS框架都是內(nèi)建各種預設的組件,比如按鈕、卡片、警告框等,當需要通過定制化設計時,組件的高度耦合性則...
    JunChow520閱讀 3,466評論 0 2
  • 1.1CSS 基礎與選擇器初識 | CSS 1. CSS 加載方式有幾種? CSS樣式加載一共有四種方式: 1、行...
    沒糖_cristalle閱讀 969評論 0 0
  • 說明:此系列文章是個人對Tailwind CSS官方文檔的翻譯,不是很嚴謹,請諒解。 偽類變體 用適合的偽類,可以...
    你當溫柔又有力量閱讀 5,164評論 0 0

友情鏈接更多精彩內(nèi)容