這次練習是在 HTML 架構下沒有加任何標籤,但要做到區塊間不規則的圖案。
學習重點
- CSS absolute 絕對定位
- CSS relative 相對定位
- Flex
- 偽元素
- transform: translate() 位移運用
- box-shadow 應用
HTML 架構
- 需要一張 banner 圖片。
- 並且下方接一個文字區域,該區域內分為左右兩欄。
1 | <div class="banner"> |
架構與樣式初步設定後會變下方這樣:
來到重點
使用 box-shadow 來做成不規則邊緣效果。
- 使用
.section
區塊做一個偽元素,並使其對齊.section
正中央,使用transform:translateY()
,往上 50% 做位移。
1 | .section { |
就會得到下圖結果:
box-shadow 的特性
使用 box-shadow 的特性來達到遮罩與不規則的效果。
1 | box-shadow: X軸位移| Y軸位移| 模糊值|擴散值|大小|顏色 |
剛剛已經做了一個實體圓形,透過陰影的特性,X 軸向右依序向右推 100px,並且不要模糊,不要擴散,不要改變原尺寸大小,顏色改成橘色,
1 | box-shadow: 100px 0 0 0 orange, 200px 0 0 0 orange, 300px 0 0 0 orange; |
就會變成下圖:
確認後,就把顏色改成與 .section
顏色相同即可,再依照自己喜歡的位置與組成的大小就可以排成喜歡的樣式,不同邊就把 X 軸改為負值,就會變對稱顯示,如果想多一點層次,讓偽元素底下的陰影在加一層陰影,只要再多下一層不同顏色與位置的陰影即可。
如下方樣式:
1 | box-shadow: |
得到結果會這樣…
我只要保留上方不規則邊緣,所以 .section
最上方用一塊色塊蓋掉,使用 ::before
製作,最後調整 色塊與文字的階層位置就完成了!
1 | .section::before { |
Codepen https://codepen.io/hnzxewqw/full/xxZvwEV
結語
滿有趣的切版,但有點耗時,好處是可以對應 RWD 的效果,也練習到偽元素與 box-shadow 的特性。