繁体   English   中英

子菜单的边框与父菜单的边框不对齐吗?

[英]Sub-menu's border is not left aligned with parent's?

为什么子菜单的边框未与其父菜单对齐?

这是代码

的HTML

<nav id="su-top-header">
          <ul>
              <li><a href="#">Home</a></li>
              <li class="su-dropdown-menu">
                  <a href="#">Question &#9662;</a>
                  <ul class="su-dropdown-content">
                      <li><a href="/">About us</a></li>
                      <li><a href="/">About our product</a></li>
                      <li><a href="/">About our services</a></li>
                  </ul>
              </li>
              <li>
                  <a href="#">Application</a>
              </li>
          </ul>
      </nav>

的CSS

#su-top-header {
    font-size: 0.9em;
    border-bottom: 1px solid #ccc;
}

#su-top-header ul {
    display: block;
    list-style: inside none;
}

#su-top-header > ul > li {
    display: inline-block;
}

#su-top-header ul a {
    text-decoration: none;
    color: #999;
    padding: 5px 15px;
    display: inline-block;
}

.su-dropdown-menu {
    position: relative;
    border-left: 1px solid transparent;
    border-right: 1px solid transparent;
    border-bottom: 1px solid transparent;
}

.su-dropdown-menu:hover {
    background-color: #fff;
    border-left-color: #ccc;
    border-right-color: #ccc;
    border-bottom-color: #fff;
}

#su-top-header .su-dropdown-content {
    display: none;
    padding: 0;
    position: absolute;
    left: 0;
    background: #fff;
    text-align: left;
    border: 1px solid #ccc;
    border-top: 0;
}

.su-dropdown-content li{
    white-space: nowrap;
    display: block;
}

.su-dropdown-content li:hover{
    background-color: bisque;
}

.su-dropdown-content li a{
    display: block;   
}

#su-top-header .su-dropdown-menu:hover .su-dropdown-content {
    display: block;
}

我看到了很多样本​​,所有子菜单都与父母left aligned 我的代码有问题吗?

原因是您在父级及其子级之一上有边框,并且由于父级边框在内容区域之外,因此该子项的边框在内容区域内不会对齐。

将边框放在锚点上,请参见下面的示例,或者在父对象上使用伪对象,这将在悬停时显示边框。

 #su-top-header { font-size: 0.9em; border-bottom: 1px solid #ccc; } #su-top-header ul { display: block; list-style: inside none; } #su-top-header > ul > li { display: inline-block; } #su-top-header ul a { text-decoration: none; color: #999; padding: 5px 15px; display: inline-block; } .su-dropdown-menu { position: relative; } .su-dropdown-menu > a { border-left: 1px solid transparent; border-right: 1px solid transparent; border-bottom: 1px solid transparent; } .su-dropdown-menu:hover > a { background-color: #fff; border-left-color: #ccc; border-right-color: #ccc; border-bottom-color: #fff; } #su-top-header .su-dropdown-content { display: none; padding: 0; position: absolute; left: 0; background: #fff; text-align: left; border: 1px solid #ccc; border-top: 0; } .su-dropdown-content li{ white-space: nowrap; display: block; } .su-dropdown-content li:hover{ background-color: bisque; } .su-dropdown-content li a{ display: block; } #su-top-header .su-dropdown-menu:hover .su-dropdown-content { display: block; } 
 <nav id="su-top-header"> <ul> <li><a href="#">Home</a></li> <li class="su-dropdown-menu"> <a href="#">Question &#9662;</a> <ul class="su-dropdown-content"> <li><a href="/">About us</a></li> <li><a href="/">About our product</a></li> <li><a href="/">About our services</a></li> </ul> </li> <li> <a href="#">Application</a> </li> </ul> </nav> 

谢谢。您可以对-su #su-top-header .su-dropdown-content使用-0.6px而不是-1px ,您将在任何屏幕上获得所需的输出。

#su-top-header .su-dropdown-content {
    display: none;
    padding: 0;
    position: absolute;
    left: -0.6px;
    background: #fff;
    text-align: left;
    border: 1px solid #ccc;
    border-top: 0;
}

在这里检查

暂无
暂无

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

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