CSS中的transform屬性可以實現很多有趣的效果,比如旋轉、縮放、位移等。今天我們來實現一個旋轉拼接圓的效果。
.circle { width: 150px; height: 150px; border-radius: 50%; background: linear-gradient(to left, #1c92d2, #f2fcfe); position: relative; overflow: hidden; } .circle::before { content: ""; width: 75px; height: 150px; background: #fff; position: absolute; right: 50%; transform: skew(-45deg) translateX(75px); transform-origin: right; border-radius: 50%; } .circle::after { content: ""; width: 75px; height: 150px; background: #fff; position: absolute; left: 50%; transform: skew(45deg) translateX(-75px); transform-origin: left; border-radius: 50%; } .circle:hover { animation: rotate 2s infinite linear; } @keyframes rotate { from { transform: rotate(0); } to { transform: rotate(360deg); } }
解析代碼如下:
首先定義了一個圓形的樣式,使用了border-radius: 50%屬性來實現。接下來使用linear-gradient屬性來定義一個顏色漸變的背景。
然后通過:before和:after偽元素來實現兩個半圓的效果。這兩個偽元素都是絕對定位,且left或right為50%,使其分別在圓的左右兩側。接著使用transform屬性旋轉它們,并使用translateX屬性來使它們在旋轉時形成一個完整半圓的效果。
最后使用:hover偽類和animation屬性實現鼠標懸停時的旋轉效果。
通過這個例子,我們可以進一步了解transform屬性的使用,以及如何使用偽元素來實現復雜的效果。
上一篇mysql特殊符號變問號
下一篇css 時間函數