
這次練習是在 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 的特性。