淺談Tailwind CSS - Medium
文章推薦指數: 80 %
今天要為各位介紹的是Tailwind CSS,這是最近比較熱門的CSS框架。
Tailwind 跟其他的CSS Framework 不一樣, Tailwind 是Utility Framework, ...
GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWrite淺談TailwindCSS今天要為各位介紹的是TailwindCSS,這是最近比較熱門的CSS框架。
Tailwind跟其他的CSSFramework不一樣,Tailwind是UtilityFramework,而其他的(Bootstrap,Bulma)都是UIFramework.所以Tailwind可以更客製化的,不會受到Framework本身的style影響。
也就是說它並不像其它CSS框架有多種的UI元件,而是提供各種好用的class工具來滿足各種介面情境。
如果各位有接觸過像是Material-UI、Bulma、Bootstrap的framework,這類的component都定義好,套上去馬上就有個像樣網站的framework的確是非常方便。
但是使用這些framework很容易遇到一個問題:不想要自己的網站看起來像是套框架但又想要客製化的話,就會遇到一些麻煩:首先可能原本的框架沒有提供好的客製化方式,或是自己使用這些工具的方式導致很難客製化,只好override人家寫好的CSS。
但這種方式久了容易把程式改壞。
再來是框架本身提供客製化,可以把各個地方調整後再把程式碼載下來。
但如果今天你手上的專案交給另一個人接手,沒有人知道哪些地方是原始的設定,又有哪些地方經過調整?但只要UI都定好了,可以修改的範圍往往就受到限制。
但如果使用Utility-FirstCSS的時候,的因為每個元件都要自己刻,哪裡不滿意、需要調整以符合需求,都可以在utilityclass調整中完成。
非常具有彈性。
架構TailwindCSS把大致上CSS會用到的屬性都用單個class來表示。
像是.my-2對應的是margin-top:0.5rem;margin-bottom:0.5rem;。
.my-2{margin-top:0.5rem;margin-bottom:0.5rem;}因為可以直接把對應的class直接加在你想要作用的element上,大部分的情況下可以不需要自己動stylesheet的部分,相當方便。
這樣一來我們就可以非常迅速地把網站的各種部分建構出來,也可以很輕鬆地調整。
如果還沒決定要不要安裝可以先在Tailwind.run嘗試看看。
官方資源齊全Utility-FirstCSS本身的優點外,想要上手TailwindCSS的話,光是官方文件就十分充足。
從安裝、每個元件的範例到教學screencasts都有資源可以看。
影片內即時coding設計好UI的學習效果也還蠻不錯的。
缺點剛開始用Tailwind以後,你會發現你的htmlcode充滿了一大串像這樣的東西:
但如果前端有使用React等框架並且把畫面上的組成準確的分成不同的component,其實不用太擔心會有一堆重複的utilityclass混在一起。
與inlineCSS的差異這樣的表示方式其實跟inlineCSS有點像,但其實Tailwind有一些隱藏的優點,是inlineCSS很難辦到的:1.遵循規範相信新手剛開始學寫網頁的時候,都會有這樣的經驗,常常會隨心所欲地修改padding、margin,40px還是50px。
後來開始工作以後,才會體悟到原來這些數字不能隨便調整。
如果沒有對這些數值有一定的規範,各個component搭配起來,最後呈現給使用者的畫面也會出現視覺上的平衡問題。
如果全部寫inlineCSS,是很難去注意有沒有哪裡違背了定義好的規範。
要一一去對數值跟色碼有沒有寫對,太過辛苦也不實際:
在使用TailwindCSS的時候,只要這個utiltyclass的responsivevariant有被打開,就會產生像是底下的CSSclasses:/*Originalutiltyclass*/.w-1\/4{width:25%;}/*生成的CSSclass*/@media(min-width:896px){.lg\:w-1\/4{width:25%;}}@media(min-width:1280px){.xl\:w-1\/4{width:25%;}}於是就可以簡單地使用.xl:w-1/4.lg:w-1/4等classes來做responsivedesign。
3.Pseudo-classes要透過inlinecss加上:hover,:active也是辦不到的。
但是Tailwind提供hover、focus、active、disabled、visited、first-child……等variants。
讓你可以很容易地加上對應的utilityclass,就能得到hover、active等效果。
誰不適合Tailwind?任何工具都不會是絕對完美或是絕對適合所有族群:1.網站需要支援較舊版本的瀏覽器Tailwindontheotherhandisalow-levelutilityframework,wheremostoftheclassesmapdirectlytoindividualCSSproperties.Thismeansthatwhichbrowsersyousupportisreallyuptoyou,nottheframework.根據Tailwind的官方說明,browser支援度這件事情取決於個人。
畢竟知道要支援到IE9的人,就會知道不該用flexbox、:focus-within等等。
2.不擅長從零的新手如果是不擅長刻板的新手,又要在時限內地交出專案,utility-firstcss應該都會用得蠻有壓力的。
3.只需要簡單的UI,不希望花時間刻板如果沒有這個時間、也沒有這個需求需要自己刻版,其實也沒什麼用utility-firstcss增加自己困擾的理由。
總結本文對Tailwind.css的介紹尚未深入到安裝以及實際操作範例。
但因其內容和功能非常豐富,當你看到官網的介紹時相信你會對它感興趣,而且從其Github目前的star數22.7k來看,證明像是TailwindCSS的Utility-FirstCSS應該會越來越受歡迎喔MorefromMatthewChangFollowLovepodcastsoraudiobooks?Learnonthegowithournewapp.TryKnowableAboutHelpTermsPrivacyGettheMediumappGetstartedMatthewChang31FollowersFollowMorefromMediumRefrezshNextJS&TailwindCSS — ZeroCSSwithClearReactCode — almost*MohammadAaqibinDevGeniusTailwindanimation-HowtocreateCustomTailwindCSSAnimationwithReactCkmobileinJavaScriptinPlainEnglishHowtoCreateaHeadlessUISwitchWithNext.jsJohnThiong'oLogin/SignupformusingFaceIO,Next.jsandTailwindCSS.HelpStatusWritersBlogCareersPrivacyTermsAboutKnowable
延伸文章資訊
- 1還在跟複雜的CSS 的設定奮鬥嗎?用Tailwind 來幫你實現真正 ...
簡單來說Tailwind CSS 是一套Utility-First CSS,相當具有彈性,也非常適合快速 ... Tailwind CSS 把大致上CSS 會用到的屬性都用單個class 來表示。
- 2Tailwind CSS 中文文档- 无需离开您的HTML,即可快速建立 ...
Tailwind CSS 是一个功能类优先的CSS 框架,它由Adam Wathan 创建。本站提供Tailwind CSS 官方文档中文翻译致力于为广大国内开发者提供准确的中文文档,助力开发者...
- 3淺談Atomic CSS 的發展背景與Tailwind CSS - Huli
總之呢,那篇貼文引起了臉書上前端社團的熱烈討論,在短短兩三天內迅速多出許多討論相關技術的文章。 而有許多人在討論的議題,其實比起Tailwind CSS 這個 ...
- 4Tailwind CSS 介紹及應用 - 昕力資訊
今天來跟大家推薦Tailwind CSS,它並不像Bootstrap、Material-UI一樣提供我們許多設計精美的UI元件,而是提供各種好用的class工具讓我們依照我們的 ...
- 5淺談Tailwind CSS - Medium
今天要為各位介紹的是Tailwind CSS,這是最近比較熱門的CSS框架。Tailwind 跟其他的CSS Framework 不一樣, Tailwind 是Utility Framework...