纯HTML和CSS实现立体等距菜单悬停,动态效果由CSS实现。
代码下面自取🖖
🎈效果如下
HTML代码如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="style.css"> </head> <body> <ul> <li style="--i:6;"><a href="#">Home</a></li> <li style="--i:5;"><a href="#">About</a></li> <li style="--i:4;"><a href="#">Services</a></li> <li style="--i:3;"><a href="#">Portfolio</a></li> <li style="--i:2;"><a href="#">Our Team</a></li> <li style="--i:1;"><a href="#">Contact</a></li> </ul> </body> </html>
style.css代码
*{ margin: 0; padding:0; box-sizing: border-box; font-family: 'Oswald'; } body{ display: flex; justify-content: center; align-items:center; min-height: 100vh; background: #434750; } ul{ position: relative; transform: skewY(-15deg); transition: 0.5s; } ul li{ position: relative; list-style: none; width:200px; background-color: #3e3f46; padding:15px; z-index: var(--i); transition: 0.5s; } ul li:hover{ background: #33a3ee; transform: translateX(-50px); } ul li::before{ content: ''; position:absolute; top: 0; left: -40px; width: 40px; height: 100%; background: #2e3133; transform-origin: right; transform: skewY(45deg); transition: 0.5s; } ul li:hover::before{ background: #1f5378; } ul li::after{ content: ''; position: absolute; top: -40px; left: 0; width: 100%; height: 40px; background: #35383e; transform-origin: bottom; transform: skewX(45deg); transition: 0.5s; } ul li:hover::after{ background: #2982b9; } ul li a{ text-decoration: none; color: #999; display: block; text-transform: uppercase; letter-spacing: 0.05em; transition: 0.5s; } ul li:hover a{ color:#fff; } ul li:last-child::after{ box-shadow: -120px 120px 20px rgba(0,0,0,0.25); }