【问题标题】:how to add submenu inside menu in a navbar in right position如何在正确位置的导航栏中的菜单内添加子菜单
【发布时间】:2021-07-18 23:29:06
【问题描述】:

您好,我正在尝试在 HTML 中正确位置的菜单中添加子菜单。但是我在定位方面面临一个问题。我尝试通过使用完整的ulli 标签来解决这个问题。但是我在尺寸方面仍然面临很多问题,所以我决定回到旧的方式。该示例在链接中。我确信我必须换班,但我几乎没有想法了。所以请兄弟们帮帮我。这是Link

【问题讨论】:

  • 嗨..链接丢失..重新发布..
  • @ChandraShekhar 是的,我编辑它对不起

标签: html css


【解决方案1】:

请使用下拉菜单和子菜单deropdown添加此代码

这里有演示链接https://jsfiddle.net/JentiDabhi/5hmgv8h4/

HTML

<ul class="nav-list"> 
                <li class="li-list"><a href="#Home" class="active">Home</a></li>

                <li class="li-list dropdown">
                    <a href="javascript:void(0)" class="dropbtn">Scoreboard</a>
                    <ul class="dropdown-content">
                     <li class="li-list dropdown">
                        <a href="javascript:void(0)" class="dropbtn-sub">Europe continent</a>
                                 <ul class="dropdown-content">
                                    <a href="#">Deep Menu 2</a>
                                    <a href="#">Deep Menu 2</a>
                                 </ul>
                            </li>

                         <li class="li-list"><a href="#">South continent</a></li>
                        <li class="li-list"> <a href="#">Asia continent</a></li>
                         <li class="li-list"><a href="#">Africa continent</a></li>
                         <li class="li-list"><a href="#">Australia continent</a></li>
                         <li class="li-list"><a href="#" id="bottom">North continent</a></li>
                    </ul>
                 </li>
                <li class="dropdown">
                    <a href="javascript:void(0)" class="dropbtn">Communities</a>
                    <div class="dropdown-content">
                        <a href="#">Link 1</a>
                        <a href="#">Link 2</a>
                        <a href="#">Link 3</a>
                    </div>
                 </li>

            </ul>

CSS

.nav-list{
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.li-list{
     float: left;
}

li a, .dropbtn {
    display: inline-block;
    color: white;
    padding: 9px 12px;
    text-decoration: none;
}

li a:hover, .dropdown:hover .dropbtn {
    background-color: #f7ffba;
    color:red;
}

li.dropdown {
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #333;
    width: 160px;

    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
    padding: 0;
}
.dropdown-content li{
  list-style: none;
  width: 100%;
  display: inline-block;
}
.dropdown-content a {
    color: black;
    padding: 4px 6px;
    text-decoration: none;
    display: block;
    text-align: left;
    border-bottom: 1px dotted #f7ffba;
    /*position:relative;*/
}

.dropdown-content a:hover {background-color: #f7ffba}

.dropdown:hover > .dropdown-content ,
.dropdown-content .dropdown:hover > .dropdown-content {
    display: block;
}
.dropdown-content .dropdown > .dropdown-content{
  left: 100%;
  top: 0;
}

【讨论】:

    【解决方案2】:

    为子菜单下拉添加 css

    .sub_mebu.dropdown-content{left:100%;}
    

    【讨论】:

      【解决方案3】:

      只需添加另一个css规则,即

      .dropdown li.dropdown {
          display: inline-block;
          float:right;
      }
      

      希望对你有帮助 工作fiddle

      【讨论】:

      • 是的,它是写的,但它没有像完整的子菜单那样相对于菜单也留下间隙的功能,它显示为导航菜单的悬停而不是下拉列表
      【解决方案4】:

      子菜单

      CSS

      .dropdown-content .dropdown-content
      {
        left:100%;
      }
      

      希望这会有所帮助。

      【讨论】:

      • 是的,它是写的,但它没有像完整的子菜单那样相对于菜单也留下间隙的功能,它显示为导航菜单的悬停而不是下拉列表
      【解决方案5】:

      您使用了太多不必要的 html 标签。 检查我的笔https://codepen.io/ery/pen/JJvdQX 以获得更简单的下拉菜单。 希望对你有帮助

      /* LEVEL 0 */
      .nav ul {
        text-align: left; 
        margin: 0; 
        padding: 0;
      }
      .nav li {
        display: inline-block; 
        position: relative; 
        list-style: none;
      }
      .nav li > a {
        display: block;
        line-height: 32px;
        background: #666;
        color: #FFF;
        padding: 0 16px;
        text-decoration: none;
      }
      .nav li:hover > a {
        background: #333;
      }
      
      /* LEVEL 1 */
      
      .nav ul ul {
        position: absolute;
        width: 160px;
        left: 0;
        top: 32px; /* same value with line 13 */
        background: #333;
      }
      
      .nav li li {display: list-item}
      .nav li li a {background: transparent;}
      .nav li li a:hover {background: #999; }
      
      /* LEVEL 2 */
      .nav ul ul ul {
        top: 0;
        left: 160px; /* same value with line 28 */
      }
      
      /* Dropdown triggers */
      .nav ul ul, .nav ul li:hover ul ul, .nav ul ul li:hover ul ul {display: none;}
      .nav ul li:hover ul, .nav ul ul li:hover ul, .nav ul ul ul li:hover ul {display: block;}
      <div class="nav">
        <ul>
          <li><a href="#">menu 01</a>
            <ul>
              <li><a href="#">submenu 01</a>
                <ul>
                  <li><a href="#">sub-submenu 01</a></li>
                  <li><a href="#">sub-submenu 02</a></li>
                </ul>
              </li>
              <li><a href="#">submenu 02</a></li>
              <li><a href="#">submenu 03</a></li>
            </ul>
          </li>
          <li><a href="#">menu 02</a></li>
          <li><a href="#">menu 03</a></li>
          <li><a href="#">menu 04</a></li>
        </ul>
      </div>

      【讨论】:

      • 但你仍然有定位问题,它们相互重叠,但谢谢你我可以解决它
      • 很高兴为您提供帮助,基本上您可以通过更改 'top' 或 'left' 值来解决定位问题
      猜你喜欢
      • 1970-01-01
      • 2014-06-23
      • 2017-03-16
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多