转换汉堡图标失败

时间:2018-11-12 22:14:05

标签: html css html5 css3 css-transforms

由于某些原因,我的汉堡包图标无法正常工作。我已经看到了很多方法,但是我不知道我的问题是什么。这是我得到的结果:

enter image description here enter image description here

我当然希望得到'X'。

.hamb span {
  background-color: black;
  width: 50px;
  height: 5px;
  display: block;
  margin-bottom: 10px;
  transition: 0.5s;
}

.hamb:hover span:nth-child(1) {
  transform: rotate(45deg);
}

.hamb:hover span:nth-child(3) {
  transform: rotate(-45deg);
}

.hamb:hover span:nth-child(2) {
  transform: translateX(30px);
  opacity: 0;
}

.hamb:hover {
  cursor: pointer;
}
<div class="nav-item icon">
  <div class="hamb"><span></span> <span></span> <span></span></div>
</div>

2 个答案:

答案 0 :(得分:3)

您应该在第一个和最后一个跨度上添加一些翻译:

.hamb {
 margin:10px;
}

.hamb span {
  background-color: black;
  width: 50px;
  height: 5px;
  display: block;
  margin-bottom: 10px;
  transition: 0.5s;
}

.hamb:hover span:nth-child(1) {
  transform: rotate(45deg) translateY(21px);
}
.hamb:hover span:nth-child(3) {
  transform: rotate(-45deg) translateY(-21px);
}
.hamb:hover span:nth-child(2) {
  transform: translateX(30px) ;
  opacity: 0;
}

.hamb:hover {
  cursor: pointer;
}
<div class="hamb">
 <span></span>
 <span></span>
 <span></span>
</div>

答案 1 :(得分:2)

建立在@TermaniAfif的好答案的基础上,如果中间线保持原位并且X居中对齐,我发现它很好:

MyLdapService.myPostEndpoint('my_access_token', {});
.hamb span {
  background-color: black;
  width: 50px;
  height: 5px;
  display: block;
  margin-bottom: 10px;
  transition: 0.5s;
}

.hamb:hover span:nth-child(1) {
  transform: rotate(45deg) translateY(10px) translateX(11px);
}
.hamb:hover span:nth-child(3) {
  transform: rotate(-45deg) translateY(-10px) translateX(11px);
}
.hamb:hover span:nth-child(2) {
  opacity: 0;
}

.hamb:hover {
  cursor: pointer;
}