使用 CSS 绘制汉堡式菜单图标,通常用三个水平线表示,可以通过以下几种方法实现:
1. 使用三个 <div>
元素:
这是最直观的方法,使用三个 div
分别代表三条横线,然后通过 CSS 设置它们的样式。
<div class="hamburger-menu">
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</div>
.hamburger-menu {
width: 30px;
height: 20px;
display: flex;
flex-direction: column;
justify-content: space-between;
cursor: pointer; /* 添加鼠标指针样式 */
}
.bar {
width: 100%;
height: 3px;
background-color: black; /* 设置颜色 */
border-radius: 2px; /* 可选:添加圆角 */
transition: transform 0.3s ease-in-out; /* 添加动画效果 */
}
2. 使用伪元素 ::before
和 ::after
:
这种方法更简洁,只需一个 div
元素,利用 ::before
和 ::after
伪元素创建另外两条线。
<div class="hamburger-menu"></div>
.hamburger-menu {
width: 30px;
height: 3px;
background-color: black;
position: relative;
cursor: pointer;
border-radius: 2px;
transition: transform 0.3s ease-in-out;
}
.hamburger-menu::before,
.hamburger-menu::after {
content: "";
position: absolute;
left: 0;
width: 100%;
height: 3px;
background-color: black;
border-radius: 2px;
transition: transform 0.3s ease-in-out;
}
.hamburger-menu::before {
top: -8px;
}
.hamburger-menu::after {
bottom: -8px;
}
3. 使用 SVG:
使用 SVG 可以创建更灵活、更易于缩放的图标。
<svg width="30" height="20" viewBox="0 0 30 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="30" height="3" fill="black"/>
<rect y="7" width="30" height="3" fill="black"/>
<rect y="14" width="30" height="3" fill="black"/>
</svg>
添加交互动画 (例如,点击变换成 "X"):
以上代码片段都包含了 transition
属性,方便添加动画。 你需要在 JavaScript 或 CSS 中添加点击事件处理程序,并修改 CSS 类或样式来实现动画效果。 例如,可以使用一个类来表示激活状态,并修改 transform: rotate(45deg)
等属性来实现 "X" 形状。
选择哪种方法取决于你的具体需求和项目。 伪元素方法通常更简洁,而 SVG 方法更灵活,尤其是在需要缩放或更复杂的动画时。 使用三个 div 的方法最直观易懂,方便初学者理解。 记得根据你的设计调整颜色、大小和间距。
标签:动画,菜单,hamburger,menu,添加,汉堡,CSS,before From: https://www.cnblogs.com/ai888/p/18578085