iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

在正式使用之前,我們先來介紹 Tailwind 操作上的核心概念吧!Let's go./images/emoticon/emoticon08.gif

一、核心概念

  • utilities classes

utilities 是 Tailwind 運行的核心概念,先舉個例子方便說明,先附上純 CSS 的程式碼:
[HTML]

    <div class="chat-notification">
      <div class="chat-notification-logo-wrapper">
        <img
          class="chat-notification-logo"
          src="./images/chat.png"
          alt="ChitChat Logo"
        />
      </div>
      <div class="chat-notification-content">
        <h4 class="chat-notification-title">ChitChat</h4>
        <p class="chat-notification-message">You have a new message!</p>
      </div>
    </div>

[CSS]

.chat-notification {
  display: flex;
  max-width: 24rem;
  margin: 0 auto;
  padding: 1.5rem;
  border-radius: 0.5rem;
  background-color: #fff;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.chat-notification-logo-wrapper {
  flex-shrink: 0;
}
.chat-notification-logo {
  height: 3rem;
  width: 3rem;
}
.chat-notification-content {
  margin-left: 1.5rem;
  padding-top: 0.25rem;
}
.chat-notification-title {
  color: #1a202c;
  font-size: 1.25rem;
  line-height: 1.25;
}
.chat-notification-message {
  color: #718096;
  font-size: 1rem;
  line-height: 1.5;
}

產生結果如附圖:
https://ithelp.ithome.com.tw/upload/images/20220918/20152251Qlgd9WhKHP.png
這裡舉個比較誇張的例子,是以全 CSS 進行開發,讓 Tailwind 形同虛設,但筆者想帶出的觀念是:「任何需要的樣式,要盡可能使用 Tailwind 的 utilities」,只能少數使用手刻 CSS,盡量不手刻 CSS 才能把 Tailwind 的價值最大化。
那以上的程式碼轉換成 Tailwind 的樣式就像:

    <div class="flex items-center max-w-sm p-6 mx-auto space-x-4 bg-white shadow-lg rounded-xl">
      <div class="shrink-0">
        <img class="w-12 h-12" src="./images/chat.png" alt="ChitChat Logo" />
      </div>
      <div>
        <div class="text-xl font-medium text-black">ChitChat</div>
        <p class="text-slate-500">You have a new message!</p>
      </div>
    </div>

這裡全部使用上 Tailwind 的 utilities classes,不僅少了 CSS 樣式,且完全寫在 HTML 上加快開發效率。/images/emoticon/emoticon34.gif

  • 不用再去想著語意化 class 名稱

這對於筆者這種英文苦手來說真是一大福音/images/emoticon/emoticon07.gif,再也不用為了取名而煩惱著,也可不必想著各項命名規則 (OOCSS,BEM,etc.),只須不斷不斷地著了魔一樣在 HTML 輸入 class 名稱即可。圖片

  • CSS 檔案不會肥大

可能大家會覺得說,就算使用 Tailwind 之後,CSS 檔案不肥好了,可是相對的這個檔案大小增加到 HTML 上了,不是嗎?/images/emoticon/emoticon56.gif但主要是 utilities 各項 class 其實具有高度的重複使用性,所以在任何需要重複樣式的元素上使用,此時就能避免輸入各項不同的 class 樣式,導致空間浪費;並且也不用自己動腦、動眼揪出有重複性的樣式再進行重構,這不是省了時間也省了空間嗎?

  • 修改樣式更安全

相信大家剛開始接觸學習在寫 CSS 的時候,常發生牽一髮而動全身的窘境吧~?/images/emoticon/emoticon18.gif這種現象以筆者的經驗通常發生在 li 這種高度重複性的元素,會採用共通性的 class 以維持程式碼的整潔,但專案頁數一多,有可能會修改到樣式的時候,往往改動後面,結果前面的樣式一起變動卻不自覺,最後鑄成大錯/images/emoticon/emoticon04.gif;而 Tailwind 的樣式是應用在每一個個別的元素上,所以要修改時僅須對單體元素進行修正,這大大地增加修改樣式的安全性不致莫名翻船。

以上,是 Tailwind 的三大核心理念,尤其是使用過更能深刻體會它的好。

欸,大哥!
https://ithelp.ithome.com.tw/upload/images/20220918/20152251MTkq4eoxwv.jpg
照你筆者這麼介紹下來,阿我看這就行內樣式不是嗎?有什麼神通廣大的?
大家別急~在下一篇文章會介紹 Tailwind 與行內樣式有何不同,我們明日再戰!!!
https://ithelp.ithome.com.tw/upload/images/20220918/20152251xfLb4XP6s0.jpg


上一篇
Day 2:我知道框架了,那我應該用哪一個?【Bootstrap和Tailwind的差異】
下一篇
Day 4:哦哦哦我知道了,這就是行內樣式麻!【Tailwind 與 inline-style 比較】
系列文
【Tailwind】你聽過尾巴風嗎 ? CSS 框架 tailwind 的新手入門指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言