使用 transform 同時水平垂直置中
搭配 relative
與 absolute
,也能使用 transform
+ translate
同時水平垂直置中。
失くすものさえない今が強くなるチャンスよ
搭配 relative
與 absolute
,也能使用 transform
+ translate
同時水平垂直置中。
搭配 relative
與 absolute
,也能使用 transform
+ translate-y
垂直置中。
RadioGroup 必須點到 圓框
才能選取,實務上會想要點擊 Label 也相當於選擇 Radio,可將 <input>
與 <label>
合作達成。
CheckBox 必須點到 方框
才能選取,實務上會想要點擊 Label 也相當於選擇 CheckBox,可將 <input>
與 <label>
合作達成。
Tailwind CSS 可對 <button>
加以 Style 而更加美觀。
Tailwind CSS 可對 <input type="text">
加以 Style 而更加美觀。
搭配 relative
與 absolute
,也能使用 transform
+ translate-x
水平置中。
不少人詬病 Tailwind CSS 很容易在 HTML 寫出一長串的 Utility 造成可讀性不佳,本文介紹兩種方式改進。
在右上角帶有 Badge 顯示特別資訊亦為常見 Layout,可使用 absolute
+ relative
實現。
Card 常在左上角帶有 Ribbon 顯示特別資訊,可使用 absolute
+ relative
實現。
實務上常遇到一些不規則水平置中需求,如一個為水平置中,另一個卻水平靠右。
蓋板廣告是 Fixed Position 常見應用,本文簡單介紹其實踐方式。
TailwindCSS 已漸漸有自己 Community,本文搜集以 TailwindCSS 所建立的 Component、Template 與 Layout。
雖然可以使用 gap
設定子層 item 間隔,但事實上 gap
目前只能在 Chrome 與 Firefox 正常執行,Safari 則尚未支援,但 space-
可在所有 Browser 都正常執行。
Progress Bar 為實務上常見 UI,可以完全使用 Tailwind CSS 實現,並不需要其他 Package。
Card 為目前很流行 Layout,因為可針對不同 Device 寬度輕易 RWD 改變。
flex: 1
可一次設定 flex: 1 0 0
,是在子層 Item 在 Main Axis 均分父層 Box 最精簡寫法。
若想在父層 Box 直接設定子層 Item 間隔,且不包含首項與末項,可使用 gap
設定。
固然可以對 width
設定百分比實現 RWD,但這樣會隨著 Browser 改變動態改變父層 Box 寬度;若想寬度隨 Breakpoint 而變,剩下都給 Margin,則可使用 Tailwind CSS 的 container
。
若資料來自於 API,其內容可能超過父層 Box 所能顯示,此時可使用 overflow-
處理如何顯示。
若要子層 Item 寬度依照比例分配,直覺會從 width
下手,事實上也可以使用 flex-grow
實現。
若父層 Box 寬度大於所有子層 Item 總和,可使用 flex-grow
設定如何分配剩餘寬度給子層 Item。
若在父層 Box 並不是設定 items-stretch
,可使用 self-stretch
在特定子層 Item 設定成 items-stretch
。
items-center
是在父層 Box 設定,會影響所有子層 Item,若想只設定特定子層 Item 的 items-center
設定,或者在某子層 Item 覆蓋父層 Box 的 items-center
設定,則可使用 self-center
。
items-end
是在父層 Box 設定,會影響所有子層 Item,若想只設定特定子層 Item 的 items-end
設定,或者在某子層 Item 覆蓋父層 Box 的 items-end
設定,則可使用 self-end
。
items-start
是在父層 Box 設定,會影響所有子層 Item,若想只設定特定子層 Item 的 items-start
設定,或者在某子層 Item 覆蓋父層 Box 的 items-start
設定,則可使用 self-start
。
若要將特定子層 item 最後顯示,可直接使用 order-last
改變。
若要將特定子層 item 優先顯示,可直接使用 order-first
改變。
若要在不改變 HTML 下調整子層 Item 顯示順序,可使用 order-
改變。
若希望 Browser 能自動均分父層 Box 在 Cross Axis 剩餘高度,可使用 content-evenly
設定。
若希望 Browser 能自動均分父層 Box 在 Cross Axis 剩餘高度,可使用 content-around
設定。
若希望 Browser 能自動均分父層 Box 在 Cross Axis 剩餘高度,可使用 content-between
設定。
各自向左右兩側對齊為實務上常見需求,CSS 可由多種方式實現。
若要使 Flex Line 對 Box 從 Cross Axis 置中
,可使用 content-center
。
除了能使用 items-center
垂直置中外,事實上也能使用 flex-wrap
搭配 content-center
垂直置中。
Flexbox 預設為 items-stretch
,這也使得 Flexbox 可自動 stretch 子層 item 使其等高。
flex
與 inline-flex
對其子層 Item 都能使用 Flexbox,但對父層 Box 本身處理則不同,flex
會維持 Block,而 inline-flex
會成為 Inline。
Flexbox 的 items-start
與 content-start
非常類似,都是在處理 Cross Axis 對齊,事實上兩者並不違背,還可一起使用。
若要使 Flex Line 對 Box 從 Cross Axis 結束處
對齊,可使用 content-end
。
若要使 Flex Line 對 Box 從 Cross Axis 開始處
對齊,可使用 content-start
。