该文本描述了一个使用HTML和CSS创建的弹性菜单。菜单包含四个项目:主页、关于、服务和联系。通过CSS样式和动画效果,菜单项在悬停时会改变颜色并产生弹跳效果,增强用户体验。代码中使用了flex布局和关键帧动画,使菜单在视觉上更加吸引人。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>弹性菜单</title>
<style>
body {
font-family: 'Arial', sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f0f0;
}
.menu {
list-style-type: none;
padding: 0;
display: flex;
background-color: #ffffff;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.menu-item {
margin: 0;
padding: 15px 25px;
font-size: 18px;
color: #333;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.menu-item::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
width: 0;
height: 3px;
background-color: #3498db;
transition: all 0.3s ease;
}
.menu-item:hover {
color: #3498db;
transform: translateY(-3px);
animation: elasticBounce 0.5s ease;
}
.menu-item:hover::after {
width: 100%;
left: 0;
}
@keyframes elasticBounce {
0% {
transform: translateY(-3px) scale(1);
}
25% {
transform: translateY(-3px) scale(1.1);
}
50% {
transform: translateY(-3px) scale(0.9);
}
75% {
transform: translateY(-3px) scale(1.05);
}
100% {
transform: translateY(-3px) scale(1);
}
}
.menu-item::before {
content: '';
position: absolute;
top: 0;
left: 50%;
width: 0;
height: 100%;
background-color: rgba(52, 152, 219, 0.1);
transform: skew(-20deg);
transition: all 0.4s ease;
z-index: -1;
}
.menu-item:hover::before {
width: 150%;
left: -25%;
}
</style>
</head>
<body>
<ul class="menu">
<li class="menu-item">Home</li>
<li class="menu-item">About</li>
<li class="menu-item">Services</li>
<li class="menu-item">Contact</li>
</ul>
</body>
</html>