實現滿版背景與水平垂直置中 Slogan
滿版背景加上水平垂直置中 Slogan 是首頁常見 Layout,可使用 Flexbox 或 m-auto
完成。
失くすものさえない今が強くなるチャンスよ
滿版背景加上水平垂直置中 Slogan 是首頁常見 Layout,可使用 Flexbox 或 m-auto
完成。
Tailwind CSS 預設 bg-
只能以漸層設定背景圖片,若要自行設定圖片,則要自行建立新 Utility。
若 Box 有設定 Height,此時 Flex Line 由 Box Height 決定,可使用 m-auto
動態調整 Margin。
Flexbox 的 align-items
是依照 flex line 概念所控制,有其在自動換列時特別重要。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度且 Item 有換列,若也需同時對 Cross Axis 從 Content 上沿對齊,可使用 items-baseline
達成。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度且 Item 有換列,若也需同時達成 Item 高度與外層 <div>
同高,可使用 items-stretch
達成。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度,若也需同時對 Cross Axis 從 Content 上沿對齊,可使用 items-baseline
達成。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度,且 Item 並沒有設定高度,可用 items-stretch
達成 Item 高度與外層 <div>
同高。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度且 Item 有換列,若也需同時對 Cross Axis 置中時,可使用 items-center
達成。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度且 Item 有換列,若也需同時對 Cross Axis 結束處對齊時,可使用 items-end
達成。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度且 Item 有換列,若也需同時對 Cross Axis 開始處對齊時,可使用 items-start
達成。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度,若也需同時對 Cross Axis 置中時,可使用 items-center
達成。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度且 Item 沒有換列,若也需同時對 Cross Axis 結束處對齊時,可使用 items-end
達成。
實務上除了在 Main Axis 方向對齊外,若外層 <div>
有高度且 Item 沒有換列,若也需同時對 Cross Axis 開始處對齊時,可使用 items-start
達成。
Flexbox 雖然看起來使 Block 從垂直排列變成水平排列,事實上可由 flex-col-reverse
決定 Main Axis 為垂直排列且由下至上。
Flexbox 雖然看起來使 Block 從垂直排列變成水平排列,事實上可由 flex-col
決定 Main Axis 為垂直排列且由上至下。
Flexbox 雖然看起來使 Block 從垂直排列變成水平排列,事實上還可由 flex-row-reverse
決定 Main Axis 排列方向。
Flexbox 雖然看起來使 Block 從垂直排列變成水平排列,事實上是由 flex-row
決定 Main Axis 排列方向。
實務上若想 Item 在 Main Axis 方向總寬度大於外層時就自動反向換列,可使用 flex-wrap-reverse
達成。
實務上若想 Item 在 Main Axis 方向總寬度大於外層時仍不換列,可使用 flex-nowrap
達成。
實務上若想 Item 在 Main Axis 方向總寬度大於外層時就自動換列,可使用 flex-wrap
達成。
若要改變 TextBox 的 Placeholder Opacity,可使用 placeholder-
系列 Utility。
若要改變 TextBox 的 Placeholder 顏色,可使用 placeholder-
系列 Utility。
Tailwind UI 基於 Tailwind CSS,使用之前須先設定好 Tailwind CSS,然後再設定 Tailwind UI 的 Plugin。
若遇到超長單字,想由 Browser 根據寬度而強制破壞單字換行,可使用 break-all
。
若遇到超長單字,想由 Browser 自動決定是否破壞單字而換行,可使用 break-words
。
若要維持一個單字完整性才換行,可使用 break-normal
。
由 API 所回傳的資料可能過長而換行顯示,但有時我們不希望換行影響版面,而想直接在該行截斷 String 加上 ...
即可,當然可以使用 JavaScript 處理,但隨著 RWD 寬度改變,JavaScript 將面臨挑戰,比較好的方式是使用 CSS 解決。
使用 Tailwind CSS 的 Screen Prefix,我們可根據 iPhone、iPad、iPad Pro、MacBook Air 與 iMac 分別設定不同 Column Width。
為了實現 RWD,我們會將 width
與 margin
都改用 %
而非 px
,但這會造成 margin
隨 Browser 寬度改變,若要 margin
固定而 width
依舊使用 %
,則要借數 calc()
根據固定 margin
動態計算 width
。
若不換行,justify-around
可使 Item 之間間隔相等,但若搭配 flex-wrap
換行,如果 Item 個數無法整除,會出現間隔不相等,可使用 calc()
自行處理間隔。
若要建立可 RWD 的 Layout,也可藉由 calc()
與 box-border
先建立 Column,最後再將 Item 放進 Column 內。
Flexbox 的 justify-around
,事實上也能使用 m-auto
簡單實現。
一般使用 Flexbox 都只會使用其相關 Property,事實上搭配 m-auto
可實現各種不規則 Layout。
實務上常遇到一堆 Item 都靠左,但最後一個 Item 靠右,直覺會使用 flex-grow
,事實上也可巧妙地使用 m-auto
實現。
若要同時水平置中與垂直置中,直覺會同時使用 justify-center
與 aligns-center
,事實上也可巧妙地使用 margin: auto
實現。
若要在 Flexbox 內實現 Cross Axis 置中,直覺會使用 items-center
,事實上也可巧妙地使用 m-auto
實現。
水平靠右直覺會使用 Flexbox 的 justify-end
,事實上 ml-auto
更精簡。
水平靠左直覺會使用 Flexbox 的 justify-start
,事實上 mr-auto
更精簡。
水平置中直覺會使用 Flexbox 的 justify-center
,事實上 mx-auto
更精簡。