css 实现汉堡包式菜单


title: css 实现汉堡包式菜单
tags: css
time: 2018/12/01

CSS3 实现汉堡包式菜单

.html

<div class="container">
  <button id="data-menu-toggle" class="data-menu-toggle">
    <span class="menu-bar bar"></span>
  </button>
</div>

.css

.container {
  padding-left: 15px;
  padding-right: 15px;
  margin-top: 100px;
  margin-left: auto;
  margin-right: auto;
  text-align: center; 
}
.data-menu-toggle {
  position: relative;
  width: 40px;
  height: 30px;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
}
/* 初始化样式 */
.data-menu-toggle .menu-bar,
.data-menu-toggle .menu-bar:before,
.data-menu-toggle .menu-bar:after{
  display: block;
  position: absolute;
  width: 100%;
  height: 5px;
  background-color: black;
  transition: all ease-in-out .3s;
}
.data-menu-toggle .menu-bar.bar {
  top: 12px;
}
.data-menu-toggle .menu-bar.bar:before {
  content: "";
  top: -12px;
}
.data-menu-toggle .menu-bar.bar:after {
  content: "";
  top: 12px;
}
/* 激活样式 */
.data-menu-toggle.active .bar {
  background-color: transparent;
}
.data-menu-toggle.active .bar:before {
  top: 0px;
  transform: rotate(45deg);
}
.data-menu-toggle.active .bar:after {
  top: 0px;
  transform: rotate(-45deg);
}

.js

const element = document.getElementById('data-menu-toggle');

element.onclick = function() {
  this.classList.toggle('active');
}

演示效果

demon.gif

缺陷

高度和宽度不够灵活,建议使用预编译语言。如:scss。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值