Mega Menu Responsive Nav Help(无 bootstrap)

Mega Menu Responsive Nav Help (no bootstrap)

我正在尝试使用纯 html/css 而不使用 bootstrap 创建一个非常通用的大型菜单(由于某种原因没有在线教程,所以我自己制作了一个)。我已经成功地设置了我的导航的正确样式并且它可以响应地工作,但是我无法弄清楚如何让移动版本给我一个菜单选项而不是像现在一样提供所有 link。我将 post 下面的代码,如果有人可以告诉我要添加什么以实现它,那就太棒了!

<div class="menu style">
            <ul class="menu">
            <!-- Mega Menu start. copy section between comments to create new heading-->
                <li><a href="#">Option 1</a>
                    <div class="mega-menu">
                        <div class="col-1">
                            <h4>Header 1</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                        <div class="col-1">
                            <h4>Header 2</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                        <div class="col-1">
                            <h4>Header 3</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                         <div class="col-1">
                            <h4>Header 4</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                    </div>
                    <li><a href="#">Option 2</a>
                    <div class="mega-menu">
                        <div class="col-1">
                            <h4>Header 1</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                        <div class="col-1">
                            <h4>Header 2</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                        <div class="col-1">
                            <h4>Header 3</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                    </div>
                    <li><a href="#">Option 3</a>
                    <div class="mega-menu">
                        <div class="col-1">
                            <h4>Header 1</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                        <div class="col-1">
                            <h4>Header 2</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                        <div class="col-1">
                            <h4>Header 3</h4>
                                <ol>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                    <li><a href="#">Content</a></li>
                                </ol>
                        </div>
                    </div></ul></div>

这是CSS

    @font-face {
    font-family: 'raleway';
    src: url(fonts/raleway/raleway.ttf) format('truetype');
    src: url(fonts/raleway/raleway.otf) format('opentype');
    src: url(fonts/raleway/raleway.woff) format('woff');
}

.menu{
    display:block;
    position:relative;
}
.menu,.menu ul{
    margin:0;padding:0;
    list-style:none;
    position:relative
    }
.menu ul a{float:left}

.menu .mega-menu a{
    float:none;
    padding:0
}

.menu .mega-menu,.menu .mega-menu ol li{
    opacity:0;
    visibility:hidden;
    display:none ! important/9;
}

.menu li:hover>.mega-menu,.menu li:hover>.mega-menu ol li{
    opacity:1;
    visibility:visible;
    display:block ! important/9
}

.menu ul:after{
    content:"";
    clear:both;
    display:block}

.menu ul li{
    float:left;
}
/*Main heading css*/
.menu ul li a{
    display:block;
    padding:14px 20px 15px 20px;
    font-family:'raleway',arial,sans-serif;
    color:#fff;
    font-size:1.1em;
    font-weight:bold;
    text-decoration:none
}
/*dropdown section css*/
.mega-menu{
    position:absolute;
    top:100%;
    padding:18px 11px;
    background-color:rgba(0,0,0,.8)
}

.mega-menu ol{
    list-style:none;
    padding:0
}

.mega-menu ol li{width:100%;}
/*dropdown section text css*/
.mega-menu ol li a{
    font-size:.9em;
    line-height:18px;
    }
.mega-menu ol li:hover,.mega-menu ol li a{
    color:#fff;
    padding:0;
    background-image:none
}

/*sub header css*/
.mega-menu div h4{
    font-family:'raleway',arial,sans-serif;
    font-size:1.15em;
    font-weight:bold;
    color:#f7b50d;
    border-bottom:1px solid #e4e4e4;
    padding:0 0 8px 0;
    margin:0 0 10px 0
}

.mega-menu .col-1{width:135px}

.mega-menu .col-1{
    float:left;
    margin:0 9px
}


@media only screen and (max-width: 767px){

    .menu ul li{
        width:100%;
    }

    .menu ul li{position:relative}

    .menu .mega-menu ol li{height:0}

    .menu li:hover>.mega-menu ol li{height:auto}

    .mega-menu,.menu ul ul{z-index:100}

    .mega-menu{padding:18px 0}

    .mega-menu ol li:last-child{margin:0 0 10px 0}

    .menu .col-1{
        float:left;
        margin:0 0 0 5%;width:90%
    }
} 

/*Also main heading css*/
.style.menu, .style-1.menu ul li  {
    background-color: #333; 
    border-top:1px solid #f7b50d;
    border-bottom:1px solid #f7b50d;
} 
    .style.menu ul li a:hover {
        color:#f7b50d;
}

这是我用它制作的代码笔的 link。 Code Pen Link

现在习惯了这样定义你的 .mega-menu position static

像这样

@media only screen and (max-width: 767px){
  .menu li:hover .mega-menu{position:static;}
}

演示

@font-face {
    font-family: 'raleway';
    src: url(fonts/raleway/raleway.ttf) format('truetype');
    src: url(fonts/raleway/raleway.otf) format('opentype');
    src: url(fonts/raleway/raleway.woff) format('woff');
}

.menu{
 display:block;
 position:relative;
}
.menu,.menu ul{
 margin:0;padding:0;
 list-style:none;
 position:relative
 }
.menu ul a{float:left}

.menu .mega-menu a{
 float:none;
 padding:0
}

.menu .mega-menu,.menu .mega-menu ol li{
 opacity:0;
 visibility:hidden;
 display:none ! important/9;
}

.menu li:hover>.mega-menu,.menu li:hover>.mega-menu ol li{
 opacity:1;
 visibility:visible;
 display:block ! important/9
}

.menu ul:after{
 content:"";
 clear:both;
 display:block}

.menu ul li{
 float:left;
}
/*Main heading css*/
.menu ul li a{
 display:block;
 padding:14px 20px 15px 20px;
 font-family:'raleway',arial,sans-serif;
 color:#fff;
 font-size:1.1em;
 font-weight:bold;
 text-decoration:none
}
/*dropdown section css*/
.mega-menu{
 position:absolute;
 top:100%;
 padding:18px 11px;
 background-color:rgba(0,0,0,.8)
}

.mega-menu ol{
 list-style:none;
 padding:0
}

.mega-menu ol li{width:100%;}
/*dropdown section text css*/
.mega-menu ol li a{
 font-size:.9em;
 line-height:18px;
 }
.mega-menu ol li:hover,.mega-menu ol li a{
 color:#fff;
 padding:0;
 background-image:none
}

/*sub header css*/
.mega-menu div h4{
 font-family:'raleway',arial,sans-serif;
 font-size:1.15em;
 font-weight:bold;
 color:#f7b50d;
 border-bottom:1px solid #e4e4e4;
 padding:0 0 8px 0;
 margin:0 0 10px 0
}

.mega-menu .col-1{width:135px}

.mega-menu .col-1{
 float:left;
 margin:0 9px
}


@media only screen and (max-width: 767px){
 
 .menu ul li{
  width:100%;
 }
  .menu li:hover .mega-menu{position:static;}
 
 .menu ul li{position:relative}
 
 .menu .mega-menu ol li{height:0}
 
 .menu li:hover>.mega-menu ol li{height:auto}
 
 .mega-menu,.menu ul ul{z-index:100}
 
 .mega-menu{padding:18px 0}
 
 .mega-menu ol li:last-child{margin:0 0 10px 0}
 
 .menu .col-1{
  float:left;
  margin:0 0 0 5%;width:90%
 }
} 

/*Also main heading css*/
.style.menu, .style-1.menu ul li  {
 background-color: #333; 
 border-top:1px solid #f7b50d;
 border-bottom:1px solid #f7b50d;
} 
 .style.menu ul li a:hover {
  color:#f7b50d;
}
<div class="menu style">
    <ul class="menu">
    <!-- Mega Menu start. copy section between comments to create new heading-->
     <li><a href="#">Option 1</a>
      <div class="mega-menu">
       <div class="col-1">
        <h4>Header 1</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
       <div class="col-1">
        <h4>Header 2</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
       <div class="col-1">
        <h4>Header 3</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
                             <div class="col-1">
                                <h4>Header 4</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
                            </div>
      </div>
                        <li><a href="#">Option 2</a>
      <div class="mega-menu">
       <div class="col-1">
        <h4>Header 1</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
       <div class="col-1">
        <h4>Header 2</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
       <div class="col-1">
        <h4>Header 3</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
      </div>
                        <li><a href="#">Option 3</a>
      <div class="mega-menu">
       <div class="col-1">
        <h4>Header 1</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
       <div class="col-1">
        <h4>Header 2</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
       <div class="col-1">
        <h4>Header 3</h4>
         <ol>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
          <li><a href="#">Content</a></li>
         </ol>
       </div>
      </div>

用移动屏幕下的 汉堡包 菜单更新了您的代码,使下拉菜单 static 定位,因为它不会与其他菜单重叠。

查看此代码段。 运行这就是大屏和小屏。我想这就是您要找的。

jQuery(function($) {
  $('.menu-btn').click(function() {
    $('.menu.style').toggleClass("open");
  })
})
@font-face {
  font-family: 'raleway';
  src: url(fonts/raleway/raleway.ttf) format('truetype');
  src: url(fonts/raleway/raleway.otf) format('opentype');
  src: url(fonts/raleway/raleway.woff) format('woff');
}
.menu {
  display: block;
  position: relative;
}
.menu,
.menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
  position: relative
}
.menu ul a {
  float: left
}
.menu .mega-menu a {
  float: none;
  padding: 0
}
.menu .mega-menu,
.menu .mega-menu ol li {
  opacity: 0;
  visibility: hidden;
  display: none ! important/9;
}
.menu li:hover>.mega-menu,
.menu li:hover>.mega-menu ol li {
  opacity: 1;
  visibility: visible;
  display: block ! important/9
}
.menu ul:after {
  content: "";
  clear: both;
  display: block
}
.menu ul li {
  float: left;
}
/*Main heading css*/

.menu ul li a {
  display: block;
  padding: 14px 20px 15px 20px;
  font-family: 'raleway', arial, sans-serif;
  color: #fff;
  font-size: 1.1em;
  font-weight: bold;
  text-decoration: none
}
/*dropdown section css*/

.mega-menu {
  position: absolute;
  top: 100%;
  padding: 18px 11px;
  background-color: rgba(0, 0, 0, .8)
}
.mega-menu ol {
  list-style: none;
  padding: 0
}
.mega-menu ol li {
  width: 100%;
}
/*dropdown section text css*/

.mega-menu ol li a {
  font-size: .9em;
  line-height: 18px;
}
.mega-menu ol li:hover,
.mega-menu ol li a {
  color: #fff;
  padding: 0;
  background-image: none
}
/*sub header css*/

.mega-menu div h4 {
  font-family: 'raleway', arial, sans-serif;
  font-size: 1.15em;
  font-weight: bold;
  color: #f7b50d;
  border-bottom: 1px solid #e4e4e4;
  padding: 0 0 8px 0;
  margin: 0 0 10px 0
}
.mega-menu .col-1 {
  width: 135px
}
.mega-menu .col-1 {
  float: left;
  margin: 0 9px
}
@media only screen and (max-width: 767px) {
  .menu ul li {
    width: 100%;
  }
  .menu ul li {
    position: relative
  }
  .menu .mega-menu ol li {
    height: 0
  }
  .menu li:hover>.mega-menu ol li {
    height: auto
  }
  .mega-menu,
  .menu ul ul {
    z-index: 100
  }
  .mega-menu {
    padding: 18px 0
  }
  .mega-menu ol li:last-child {
    margin: 0 0 10px 0
  }
  .menu .col-1 {
    float: left;
    margin: 0 0 0 5%;
    width: 90%
  }
}
/*Also main heading css*/

.style.menu,
.style-1.menu ul li {
  background-color: #333;
  border-top: 1px solid #f7b50d;
  border-bottom: 1px solid #f7b50d;
}
.style.menu ul li a:hover {
  color: #f7b50d;
}
/* new css */

.menu-btn {
  display: none;
}
@media only screen and (max-width: 768px) {
  .menu.style {
    padding: 15px 0;
  }
  .menu-btn {
    display: block;
    margin-top: 10px;
    margin-left: 10px;
  }
  ul.menu {
    display: none;
  }
  .open ul.menu {
    display: block;
  }
  .menu li:hover > .mega-menu {
    position: static;
  }
}
.menu-btn div {
  position: absolute;
  left: 100%;
  top: 64%;
  padding-right: 8px;
  margin-top: -0.50em;
  line-height: 1.2;
  font-size: 18px;
  font-weight: 200;
  vertical-align: middle;
  z-index: 99;
}
.menu-btn span {
  display: block;
  width: 19px;
  height: 3px;
  margin: 4px 0;
  background: rgb(0, 0, 0);
  z-index: 99;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="menu style">
  <div class="mobile-nav">
    <div class="menu-btn" id="menu-btn">
      <div></div>
      <span></span>
      <span></span>
      <span></span>
    </div>
    <ul class="menu">
      <!-- Mega Menu start. copy section between comments to create new heading-->
      <li><a href="#">Option 1</a>
        <div class="mega-menu">
          <div class="col-1">
            <h4>Header 1</h4>
            <ol>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
            </ol>
          </div>
          <div class="col-1">
            <h4>Header 2</h4>
            <ol>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
            </ol>
          </div>
          <div class="col-1">
            <h4>Header 3</h4>
            <ol>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
            </ol>
          </div>
          <div class="col-1">
            <h4>Header 4</h4>
            <ol>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
              <li><a href="#">Content</a>
              </li>
            </ol>
          </div>
        </div>
        <li><a href="#">Option 2</a>
          <div class="mega-menu">
            <div class="col-1">
              <h4>Header 1</h4>
              <ol>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
              </ol>
            </div>
            <div class="col-1">
              <h4>Header 2</h4>
              <ol>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
              </ol>
            </div>
            <div class="col-1">
              <h4>Header 3</h4>
              <ol>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
                <li><a href="#">Content</a>
                </li>
              </ol>
            </div>
          </div>
          <li><a href="#">Option 3</a>
            <div class="mega-menu">
              <div class="col-1">
                <h4>Header 1</h4>
                <ol>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                </ol>
              </div>
              <div class="col-1">
                <h4>Header 2</h4>
                <ol>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                </ol>
              </div>
              <div class="col-1">
                <h4>Header 3</h4>
                <ol>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                  <li><a href="#">Content</a>
                  </li>
                </ol>
              </div>
            </div>