如何在我的网站的移动视图中添加汉堡包

时间:2019-04-09 10:39:01

标签: javascript html css

我必须为网站代码的移动视图添加一个汉堡包。

我在w3学校的帮助下尝试了一下,但效果不佳。

我将分享我的HTML和CSS代码。我添加了一个汉堡图标,只是必须使其处于活动状态。

我应该在单独的JavaScript文件中编写代码还是在HTML中添加任何代码?

我尝试从HTML CSS属性添加汉堡包

用于移动视图标题的HTML和CSS:

.mobheader {
  width: 80%;
  height: auto;
  margin: 0px auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.hamburger {
  font-size: 33px;
  color: white;
  float: left;
  margin-top: 20px;
  margin-bottom: 20px;
}
<div class="mobheader">
  <div class="hamburger">
    <i class="fas fa-bars"></i>
  </div>
  <div class="logo">
    <h1>
      <a href="#"><img src="img/logomob.png" alt="logo"></a>
    </h1>
  </div>
  <div class="dots">
    <i class="fas fa-search"></i>
  </div>
</div>

我希望这个汉堡包以这样的方式工作:单击时显示3个菜单

2 个答案:

答案 0 :(得分:2)

我无法发表评论,因为您已经发布的代码有效,所以我不理解您的问题,我只是更改了代码段中的颜色和大小。看看您的问题是否是其他问题,只需弄清楚您当前的问题是什么。

编辑

我找到了一个Codepen,并将其添加到代码段中以向您展示您想要的内容。

来源:https://codepen.io/mranenko/pen/wevamj

(function() {

  var hamburger = {
    navToggle: document.querySelector('.nav-toggle'),
    nav: document.querySelector('nav'),

    doToggle: function(e) {
      e.preventDefault();
      this.navToggle.classList.toggle('expanded');
      this.nav.classList.toggle('expanded');
    }
  };

  hamburger.navToggle.addEventListener('click', function(e) {
    hamburger.doToggle(e);
  });

}());
/* imports */

@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro");

/* colors */


/* variables */


/* mixins */


/* resets and base styles */

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

*:focus {
  outline: none;
}

html {
  background: #5634d1;
  color: white;
  font: normal 10px/1.42857 "Source Sans Pro", Helvetica, Arial, sans-serif;
}

body {
  background: none;
  color: inherit;
  font: inherit;
}

a {
  color: inherit;
  cursor: pointer;
  text-decoration: none;
}

a:hover {
  opacity: 0.8;
}


/* nav toggle */

.nav-toggle {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  cursor: pointer;
  height: 2rem;
  left: 2rem;
  position: fixed;
  top: 2rem;
  width: 3.6rem;
  z-index: 2;
}

.nav-toggle:hover {
  opacity: 0.8;
}

.nav-toggle .nav-toggle-bar,
.nav-toggle .nav-toggle-bar::after,
.nav-toggle .nav-toggle-bar::before {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
  background: white;
  content: '';
  height: 0.4rem;
  width: 100%;
}

.nav-toggle .nav-toggle-bar {
  margin-top: 0;
}

.nav-toggle .nav-toggle-bar::after {
  margin-top: 0.8rem;
}

.nav-toggle .nav-toggle-bar::before {
  margin-top: -0.8rem;
}

.nav-toggle.expanded .nav-toggle-bar {
  background: transparent;
}

.nav-toggle.expanded .nav-toggle-bar::after,
.nav-toggle.expanded .nav-toggle-bar::before {
  background: white;
  margin-top: 0;
}

.nav-toggle.expanded .nav-toggle-bar::after {
  -ms-transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.nav-toggle.expanded .nav-toggle-bar::before {
  -ms-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}


/* nav */

.nav {
  -webkit-transition: left 0.5s ease;
  -moz-transition: left 0.5s ease;
  -ms-transition: left 0.5s ease;
  -o-transition: left 0.5s ease;
  transition: left 0.5s ease;
  background: #28dde0;
  color: white;
  cursor: pointer;
  font-size: 2rem;
  height: 100vh;
  left: -20rem;
  padding: 6rem 2rem 2rem 2rem;
  position: fixed;
  top: 0;
  width: 20rem;
  z-index: 1;
}

.nav.expanded {
  left: 0;
}

.nav ul {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  list-style: none;
  margin: 0;
  padding: 0;
}
<div class="nav-toggle">
  <div class="nav-toggle-bar"></div>
</div>
<nav class="nav">
  <ul>
    <li><a href="#">Portfolio</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

答案 1 :(得分:0)

假设汉堡包是一张图片:

<img src="img/hamburger.png" alt="hamburger"/>

您不需要图像的h1标签,它们仅用于标题(即文本)

还请记住“ /”以关闭您的img标签;您的徽标没有一个。