![](/img/trans.png)
[英]make bootstrap menu or sub-menu visible in left side if it's going beyond browser edge
[英]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 ▾</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 ▾</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.