CSS3流動邊框是一種非常酷炫的效果,它能夠讓邊框產生如流動水波一般的動感。下面是一個簡單的示例:
.border { border: 2px solid #ccc; position: relative; } .border::before { content: ""; position: absolute; top: -2px; left: -2px; width: 0; height: 0; border-top: 2px solid #ff0; border-right: 2px solid #ff0; transition: all .3s; } .border::after { content: ""; position: absolute; bottom: -2px; right: -2px; width: 0; height: 0; border-bottom: 2px solid #ff0; border-left: 2px solid #ff0; transition: all .3s; } .border:hover::before { width: calc(100% + 4px); height: calc(100% + 4px); border-right: 0; border-bottom: 0; } .border:hover::after { width: calc(100% + 4px); height: calc(100% + 4px); border-top: 0; border-left: 0; }
這段代碼使用了CSS3的偽元素::before和::after來實現邊框效果。在默認狀態下,它們都是隱藏的。然后在:hover時,它們的width和height將會變成容器寬度和高度的加上4px,同時邊框也會發生變化,從而實現流動邊框的效果。
具體來說,我們首先需要給容器.border設置position: relative,這樣它就會成為::before和::after的定位參照物。然后,我們分別為它們設置position: absolute以及top、left、right、bottom等屬性,使它們恰好能夠鋪滿整個邊框(但實際上它們是不可見的)。
接著,我們為它們分別設置border樣式,這里使用了2px的solid樣式以及黃色的顏色。transition屬性則用于實現變化動畫,使流動邊框更加平滑。
最后,我們分別為它們使用:hover偽類來添加動畫,當鼠標懸停在容器上時,它們的width和height將變成容器寬度和高度的加上4px,并且邊框樣式也會發生相應的改變,從而展現流動邊框的動感效果。