CSS,HTML:动画的侧边栏为1个按钮,而不是2



我获得了打开菜单的一个按钮" m"的侧菜单,但是当打开菜单而不是10个按钮时,我会像b-button一样获得20个按钮,b是图像和按钮是文本。打开菜单时,它们需要是同一按钮,而不是2个单独的按钮,我知道它们是2个单独的按钮,但是只有在打开菜单时,我才能在什么方向上制作1个按钮

代码:

 function MenuButton() {
  if (document.getElementById("mySidenav").style.width == "150px")
  {
    document.getElementById("mySidenav").style.width = "0px";
  }
  else {
    document.getElementById("mySidenav").style.width = "150px";
  }
}
.sidenav {
    height: 100%;
    width: 0;
    position: fixed;
    top: 34px;
    left: 49px;
    z-index: 2;
    background-color: #111;
    overflow: hidden;
    transition: 0.5s;
    padding-top: 55px;
}
.sidenav a {
    font-style: normal;
    font-variant-ligatures: normal;
    font-variant-caps: normal;
    font-variant-numeric: normal;
    font-weight: normal;
    font-stretch: normal;
    font-size: 25px;
    line-height: 1;
    padding: 8px 8px 8px 15px;
    text-decoration: none;
    display: block;
    color: white;
    transition: 0.3s;
    white-space: nowrap;
}
.sidenav a:hover {
    background-color: #3498db;
}
.buttons {
  height: 100%;
  width: 50px;
  position: fixed;
  margin: 0 auto;
  top: 34px;
  left: 0;
  z-index: 1;
  background-color: #111;
  overflow: hidden;
  transition: 0.5s;
  padding-top: 14px;
}
.buttons a{
  font-style: normal;
  font-variant-ligatures: normal;
  font-variant-caps: normal;
  font-variant-numeric: normal;
  font-weight: normal;
  font-stretch: normal;
  font-size:25px;
  line-height: 1;
  padding: 8px 8px 8px 15px;
  text-decoration: none;
  color: white;
  display: block;
  transition: 0.3s;
  cursor: pointer;
}
.buttons a:hover{
    background-color: #3498db;
}
<div id="mySidenav" class="sidenav">
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
</div>
    <div id="buttonside" class="buttons">
      <a><span onclick="MenuButton()">M</span></a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
      <a>B</a>
    </div>

jsfiddle链接

尝试将您的图标或图像包装到具有一定宽度的span中,例如

function MenuButton() {
  if (document.getElementById("buttonside").style.width == "150px") {
    document.getElementById("buttonside").style.width = "50px";
  } else {
    document.getElementById("buttonside").style.width = "150px";
  }
}
.sidenav {
  background-color: #111;
  overflow: hidden;
  transition: 0.5s;
}
.sidenav a:hover {
  background-color: #3498db;
}
.buttons {
  width: 50px;
  background-color: #111;
  overflow: hidden;
  transition: 0.5s;
  padding-top: 14px;
}
.buttons a {
  font-size: 25px;
  line-height: 1;
  padding: 8px 0px;
  text-decoration: none;
  color: white;
  display: block;
  transition: 0.3s;
  cursor: pointer;
  white-space: nowrap;
}
.buttons a span {
  width: 50px;
  display: inline-block;
  text-align: center;
}
.buttons a:hover {
  background-color: #3498db;
}
<div id="buttonside" class="buttons">
  <a onclick="MenuButton()"><span>M</span></a>
  <div id="mySidenav" class="sidenav">
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
    <a><span>B</span>Link</a>
  </div>
</div>

最新更新