CSS是一門用來美化網頁的語言,除了可以設置字體、顏色等基礎屬性外,還能通過一些高級的屬性實現驚艷的效果。其中,實現波浪邊框就是一種非常酷炫的效果,下面就讓我們來學習一下如何通過CSS屬性來實現這種效果。
.border{ border: 10px solid #fff; border-radius: 50%; box-shadow: inset 0px 20px 10px -10px rgba(0,0,0,0.3), 0px 20px 10px -10px rgba(0,0,0,0.3); height: 200px; position: relative; overflow: hidden; width: 200px; } .border:before{ border-radius: 50%; content: ""; height: 100px; position: absolute; width: 100px; left: 50%; top: 50%; transform: translate(-50%, -50%); } .border:after{ border-radius: 50% 50% 0 0; border-top: 10px solid #fff; box-shadow: 0px 0px 30px rgba(255,255,255,0.4); content: ""; height: 100px; position: absolute; width: 150%; left: -25%; bottom: -60px; animation: wave 2s linear infinite; } @keyframes wave{ 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
以上代碼實現了一個200x200的圓形邊框,并通過border-radius屬性設置為圓形。然后通過box-shadow屬性設置內陰影,產生清晰的外邊框效果。利用:before和:after偽選擇器實現浪的部分,其中:before是一個小圓圈,通過將其left和top設置為50%以及利用transform屬性將其移動到正中央,形成一個波浪頂部圓弧和水波之間的縫隙。而:after則是一個倒三角形,通過border-radius屬性設置左右兩側為弧形,上方和下方直線,再通過border-top屬性設置為白色并產生一個漸隱的框陰影。最后,通過animation屬性設置動畫效果,使得這個倒三角波浪不斷地向左移動,形成了動感十足的波浪效果。