简体   繁体   English

如何使用 CSS 调整子下拉菜单的高度?

[英]How can I adjust the height of a sub-dropdown menu with CSS?

I am new and teaching myself slowly...I wanted to try to write a dropdown menu, but I noticed my submenu has extra height on the first child.我是新手,慢慢地自学……我想尝试编写一个下拉菜单,但我注意到我的子菜单在第一个孩子上有额外的高度。 I have tried adjusting padding, margin, in a few places like with the menu bar, the main drop down;我试过在菜单栏、主下拉菜单等几个地方调整内边距、边距; but honestly am lost.但老实说我迷路了。 The more I try, read, and research the more lost I get.我越是尝试、阅读和研究,我就越迷失。 I think my previous coding like a parent code is blocking me, but I just can't quite figure it out.我认为我以前的编码像父代码一样阻碍了我,但我无法弄清楚。 I think it is an easy fix too.我认为这也很容易解决。 Anyone want to explain what I did wrong?任何人都想解释我做错了什么? Greatly appreciated...非常感激...

My CSS我的 CSS

.body {
    padding: 0;
    margin: 0;
    background: #91A3BD;
    background-size: cover;
    background-position: center;
    box-sizing: border-box;
    font-family: abel;
}
    
.menu-bar {
    background: #1D3860;
    height: 100%;
    width: 100%;
    text-align: center;
    font-family: abel;
    font-style: normal;
    font-size: x-large;
    font-weight: 400;
}
    
.menu-bar ul {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width: auto;
    height: auto;
    margin-left: 50px;
    margin-right: 90px;
    list-style: none;
    color: #91A3BD;
    padding-top: 18px;
    padding-right: 0px;
}
    
.menu-bar ul li {
    display: block;
    list-style-type: none;
    color: #91A3BD;
    white-space:nowrap;
}
    
.menu-bar ul li a {
    text-decoration: none;
    color: #91A3BD;
    white-space:nowrap;
}

.current, .menu-bar ul li a:hover {
    text-decoration: underline;
    white-space:nowrap;
}
    
.sub-menu1 {
    display: none;
}
        
.menu-bar ul li:hover .sub-menu1 {
    display: block;
    position: absolute;
    background: #1D3860;
    white-space:nowrap;
}
    
.menu-bar ul li:hover .sub-menu1 ul {
    display: block;
    margin-top: auto;
    margin-right: auto;
    margin-left: -40px;
    margin-bottom: auto;
    white-space: nowrap;
}

.menu-bar ul li:hover .sub-menu1 ul li {
    width: auto;
    padding: 10px;
    border-bottom: 1px solid #fff;
    background: transparent;
    border-radius: 0;
    text-align: left;
    white-space:nowrap;
}
    
.menu-bar ul li:hover .sub-menu1 ul li:last-child {
    border-bottom: none;
}
    
.sub-menu2 {
    display: none;
}
    
.menu-bar ul li:hover .sub-menu1 ul li:hover .sub-menu2 {
    display: block;
    position: absolute;
    margin-top: none;
    margin-left: 146px;
    margin-top: -59px;
    background: #1D3860;
    white-space: nowrap;
 
    
.menu-bar ul li:hover .sub-menu1 ul li:hover .sub-menu2 ul {
    display: block;
    height: auto;
    margin-right: auto;
    margin-bottom: auto;
    white-space:nowrap;
}   
    
.menu-bar ul li:hover .sub-menu1 ul li:hover .sub-menu2 ul li {
    height: auto;
    width: auto;
    margin-top: 0px;
    border-bottom: 1px solid #fff;
    background: transparent;
    border-radius: 0;
    text-align: left;
    white-space: nowrap;
}
    
.menu-bar ul li:hover .sub-menu1 ul li:hover .sub-menu2 ul li:last-child {
    border-bottom: none;
}   

My HTML我的 HTML

  <li class="current"><a href="#">Home</a></li>
  <li><a href="#">Über Uns</a></li>
  <li><a href="#">Leonberger</a>
        <div class="sub-menu1">
        <ul><li><a href="#">Hündinnen</a></li>        
          <li><a href="#">Welpen</a>
                <div class="sub-menu2">
                    <ul><li><a href="#">Würfe A</a></li>
                    </ul></div></li>
          <li><a href="#">Notvermittlung</a></li>
        </ul></div></li>
   <li><a href="#">Golden Retriever</a>
        <div class="sub-menu1">
        <ul><li><a href="#">Hündinnen</a></li>
          <li><a href="#">Rüde</a></li> 
          <li><a href="#">Welpen</a>
                <div class="sub-menu2">
                    <ul><li><a href="#">Würfe A</a></li>
                    <li><a href="#">Würfe B</a></li>
                    <li><a href="#">Würfe C</a></li>
                    </ul></div></li>
          <li><a href="#">Notvermittlung</a></li>
        </ul></div></li>
    <li><a href="#">Welpen</a>
        <div class="sub-menu1">
        <ul><li><a href="#">vor dem Kauf</a></li>
          <li><a href="#">Welpen Infos</a></li> 
          <li><a href="#">Garantie</a></li>
          <li><a href="#">Kosten</a></li>
        </ul></div></li>
    <li><a href="#">Services</a>
        <div class="sub-menu1">
        <ul>
            <li><a href="#">Welpenschule</a></li>
            <li><a href="#">Seminare</a></li>
            <li><a href="#">Pension</a></li>
            <li><a href="#">empfohlene Bücher</a></li>
            <li><a href="#">Hundefutter</a></li>
        </ul></div></li>
    <li><a href="#">Kontakt</a></li>
</ul></div>``` 


  [1]: https://i.stack.imgur.com/gQgPP.jpg

With Global Selector * I eliminate extra margin and padding which was one of the reasons for your code problem.使用全局Selector *我消除了额外的边距填充,这是您的代码问题的原因之一。

Then I gave sub-menu1 and sub-menu2 position : absolute .然后我给了sub-menu1sub-menu2 position : absolute

And I adjusted their position from top to right and left.我从上到右调整了他们的位置。 You can easily see the changes by looking at the code.您可以通过查看代码轻松查看更改。

Of course, this menu is not responsive and test it in full screen mode.当然,这个菜单没有响应,在全屏模式下测试。

 * { padding: 0; margin: 0; } .body { padding: 0; margin: 0; background: #91A3BD; background-size: cover; background-position: center; box-sizing: border-box; font-family: abel; } .menu-bar { background: #1D3860; text-align: center; font-family: abel; font-style: normal; font-size: x-large; font-weight: 400; } .menu-bar ul { justify-content: space-between; width: 100%; list-style: none; color: #91A3BD; } .menu-bar ul li { display: inline-block; list-style-type: none; color: #91A3BD; white-space: nowrap; padding: 18px 10px; position: relative; } .menu-bar ul li a { text-decoration: none; color: #fff; white-space: nowrap; } .current, .menu-bar ul li a:hover { text-decoration: underline; white-space: nowrap; } .sub-menu1 { border-top: 1px solid #dd3322; position: absolute; top: -1000px; } .menu-bar ul li .sub-menu1 ul li { display: block; } .menu-bar ul li:hover .sub-menu1 { display: block; background: #1D3860; white-space: nowrap; top: 62px; } .menu-bar ul li:hover .sub-menu1 ul { display: block; white-space: nowrap; width: 100%; left: 0; } .menu-bar ul li:hover .sub-menu1 ul li { padding: 10px; border-bottom: 1px solid #fff; background: transparent; border-radius: 0; text-align: left; white-space: nowrap; } .menu-bar ul li:hover .sub-menu1 ul li:last-child { border-bottom: none; } .sub-menu2 { border-top: 1px solid #dd3322; display: block; position: absolute; width: 150px; top: -1000px; } .menu-bar ul li .sub-menu1 ul li .sub-menu2 ul li { display: block; } .sub-menu1 ul li:hover .sub-menu2 { background: #1D3860; white-space: nowrap; top: 0px; right: -150px } .sub-menu1 ul li:hover .sub-menu2 ul li { padding: 10px; border-bottom: 1px solid #fff; background: transparent; border-radius: 0; text-align: left; white-space: nowrap; display: block; white-space: nowrap; width: 100%; left: 0; } .sub-menu1 ul li:hover .sub-menu2 ul li:last-child { border-bottom: none; }
 <div class="menu-bar"> <ul> <li class="current"><a href="#">Home</a></li> <li><a href="#">Über Uns</a></li> <li><a href="#">Leonberger</a> <div class="sub-menu1"> <ul> <li><a href="#">Hündinnen</a></li> <li><a href="#">Welpen</a> <div class="sub-menu2"> <ul> <li><a href="#">Würfe A</a></li> </ul> </div> </li> <li><a href="#">Notvermittlung</a></li> </ul> </div> </li> <li><a href="#">Golden Retriever</a> <div class="sub-menu1"> <ul> <li><a href="#">Hündinnen</a></li> <li><a href="#">Rüde</a></li> <li><a href="#">Welpen</a> <div class="sub-menu2"> <ul> <li><a href="#">Würfe A</a></li> <li><a href="#">Würfe B</a></li> <li><a href="#">Würfe C</a></li> </ul> </div> </li> <li><a href="#">Notvermittlung</a></li> </ul> </div> </li> <li><a href="#">Welpen</a> <div class="sub-menu1"> <ul> <li><a href="#">vor dem Kauf</a></li> <li><a href="#">Welpen Infos</a></li> <li><a href="#">Garantie</a></li> <li><a href="#">Kosten</a></li> </ul> </div> </li> <li><a href="#">Services</a> <div class="sub-menu1"> <ul> <li><a href="#">Welpenschule</a></li> <li><a href="#">Seminare</a></li> <li><a href="#">Pension</a></li> <li><a href="#">empfohlene Bücher</a></li> <li><a href="#">Hundefutter</a></li> </ul> </div> </li> <li><a href="#">Kontakt</a></li> </ul> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM