最近因為公司需要製作那種 hover 會顯示一些文字的特效,看著一同實習的同事寫 code 也讓我學到不少東西。
我們要做的東西成品大概長這樣:
See More
Position Absolute vs. Relative
其實做法很簡單,重點是要搞清楚 position: absolute
跟 position: relative
之間的關係。
兩者的特性皆是可以使用 top
跟 left
屬性去調整位置,唯一的差別在於起始點的不同, relative
是從原本在的位置開始算起,而 absolute
直觀會認為是從視窗的左上角開始算起,但其實是從上一個被設定為 position: absolute
的 parent node 開始算起,如果沒有的話才是從視窗左上角開始。
所以要讓蓋在圖片上面的區塊對齊圖片的左上角,只要將上層的 div
設定為 position: relative
並將要蓋在上面的區塊設定 position: absolute
為即可:
Html
<div class="holder"> <img src="https://upload.wikimedia.org/wikipedia/commons/1/15/Hopwas_Woods_Sun.jpg" width="600" height="400"> <div class="on-top">See More</div> </div>
Css
.holder { position: relative; } .on-top { position: absolute; opacity: 0; transition: all 200ms ease-in-out; top: 0px; left: 0px; } .on-top:hover { opacity: 1; }