CSS3圓環(huán)菜單的實現(xiàn):
.menu { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; flex-direction: row; } .menu__item { width: 65px; height: 65px; margin-right: 20px; border-radius: 50%; background-color: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); display: flex; justify-content: center; align-items: center; animation-name: menu-item; animation-duration: 0.5s; animation-fill-mode: forwards; } .menu__item:nth-child(1) { transform: rotate(0deg); } .menu__item:nth-child(2) { transform: rotate(60deg); } .menu__item:nth-child(3) { transform: rotate(120deg); } .menu__item:nth-child(4) { transform: rotate(180deg); } .menu__item:nth-child(5) { transform: rotate(240deg); } .menu__item:nth-child(6) { transform: rotate(300deg); } .menu__item:hover { border: 2px solid #333; } @keyframes menu-item { 0% { opacity: 0; transform: scale(0.5); } 100% { opacity: 1; transform: scale(1); } }
這段代碼實現(xiàn)了一個簡單的圓環(huán)菜單,用到了CSS3的旋轉(zhuǎn)特性、陰影、動畫等。
其中,.menu類表示菜單的整體樣式,包括居中、flex布局等;.menu__item類表示菜單的單個選項樣式,包括大小、邊框、背景色、居中等;nth-child(n)表示選中該類目下的第n個元素。
通過rotate(n)將每個選項按照60度的角度旋轉(zhuǎn),形成圓環(huán)樣式。并且在動畫過程中,使用了從opacity:0和transform:scale(0.5)到opacity:1和transform:scale(1)的漸變效果,讓菜單項在瀏覽器中以動畫的方式展現(xiàn)。
另外,.menu__item:hover表示在鼠標懸停時添加邊框效果,讓用戶知道哪個選項被選中了。