我們昨天練習了 header
區塊,今天開始進入 main
的區塊,網頁大致分為 header
、main
、footer
三大區塊,而網頁整體架構的主要內容會放在 main
標籤內,那麼開始今天的練習吧!
pc
pad
mobile
#2F3136
的灰色,body
加上背景顏色就不需要每個區塊額外給背景顏色,gray-300
為自定義參數。<body class="bg-gray-300">
...
</body>
header
區塊以 fixed
定位,fixed
的元素會失去本身的空間,header
高度固定是 96px
,因為固定最上方 header
有給權重
,這時外層的 main
標籤要往上推 96px
的間距
才不會被 header
覆蓋。<body class="bg-gray-300">
<main class="mt-24">
...
</main>
</body>
main
標籤裡會包含不同類型的區塊,我們可以使用 section
標籤來區分每個區塊。<body class="bg-gray-300">
<main class="mt-24">
<section>
...
</section>
</main>
</body>
四
個一列,pad 與 mobile 兩
個一列且每個按鈕之間有間距
。<ul class="grid grid-cols-2 gap-4 lg:grid-cols-4">
...
</ul>
icon 與文字左右排版且在中間。
按鈕高度
隨著斷點改變,Tailwind CSS 高度沒有 60px
與 70px
的類名稱,在 Day13 - 寬度、高度 有提到想以 px
表示,將 px
包在中括號內。
icon 在 md
斷點以下為 32px
也就是 w-8
,md
斷點以上寬度變成 auto
取決 icon 本身大小的 40px
。
<a href="javascript:;" class="... flex h-[60px] items-center justify-center md:h-[70px]">
<img
src="..."
alt="..."
class="... w-8 md:w-auto"
/>
<span
class="..."
>推薦旅宿
</span>
</a>
旅遊景點的背景顏色、icon 與文字顏色不同於其他三個按鈕,因旅遊景點為預設按鈕,一開始就給予預設樣式,其餘按鈕滑鼠停留時平滑的
改變效果。
這邊跟大家分享一個小技巧:沒有預設樣式的 icon 呈現灰色,使用 grayscale
圖片會以灰階
呈現,改變效果時在將灰階移除,這樣只需要輸出一張彩色的 icon。
<a href="javascript:;" class="... group bg-gray-200 duration-300 hover:bg-gray-400">
<img
src="..."
alt="..."
class="... grayscale duration-300 group-hover:grayscale-0"
/>
<span
class="... text-gray-100 duration-300 group-hover:text-white"
>推薦旅宿
</span>
</a>
.grayscale {
--tw-grayscale: grayscale(100%);
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.group:hover .group-hover\:grayscale-0 {
--tw-grayscale: grayscale(0);
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
body
。fixed
的元素會失去空間,要推 fixed
元素高度的間距。section
標籤可以很好的區分每個不同類型區塊,以利維護。grid
依據斷點改變數量、gap
設定區塊之間間距。px
表示,將 px
包在中括號內。hover
與 transition
搭配(包含 group
、group-hover
)grayscale
能將圖片以灰階呈現。