我正在构建一个带有一些子菜单的简单水平菜单。
但我一直在尝试让子项遵守父项的宽度。
这里有一些图片我在说什么:
这是我得到的:
检查一下:
* {
margin: 0;
padding: 0;
}
body {
font-family: arial, helvetica, sans-serif;
font-size: 12px;
}
.menu {
list-style: none;
border: 1px solid #c0c0c0;
float: left;
}
.menu li {
position: relative;
float: left;
border-right: 1px solid #c0c0c0;
}
.menu li a {
color: #333;
text-decoration: none;
padding: 5px 10px;
display: block;
}
.menu li a:hover {
background: #333;
color: #fff;
-moz-box-shadow: 0 3px 10px 0 #CCC;
-webkit-box-shadow: 0 3px 10px 0 #ccc;
text-shadow: 0px 0px 5px #fff;
}
.menu li ul {
position: absolute;
top: 25px;
left: 0;
background-color: #fff;
display: none;
}
.menu li:hover ul,
.menu li.over ul {
display: block;
}
.menu li ul li {
border: 1px solid #c0c0c0;
display: block;
width: 150px;
}
<nav>
<ul class="menu">
<li><a href="#">Home</a>
</li>
<li><a href="#">About</a>
</li>
<li><a href="#">What we do?</a>
<ul>
<li><a href="#">What we do? 01</a>
</li>
<li><a href="#">What we do? 02</a>
</li>
<li><a href="#">What we do? 03</a>
</li>
</ul>
</li>
<li><a href="#">Links</a>
<ul>
<li><a href="#">Myotherwebsiteiscool</a>
</li>
</ul>
</li>
<li><a href="#">Contact</a>
<ul>
<li><a href="#">Form Contact</a>
</li>
<li><a href="#">Find us</a>
</li>
</ul>
</li>
</ul>
</nav>
最佳答案
在此处更改 css - 请注意,我已将 left: 0
更改为 right: 0
.menu li ul {
position: absolute;
top: 25px;
right: 0;
background-color: #fff;
display: none;
}
检查一下:
* {
margin: 0;
padding: 0;
}
body {
font-family: arial, helvetica, sans-serif;
font-size: 12px;
}
.menu {
list-style: none;
border: 1px solid #c0c0c0;
float: left;
}
.menu li {
position: relative;
float: left;
border-right: 1px solid #c0c0c0;
}
.menu li a {
color: #333;
text-decoration: none;
padding: 5px 10px;
display: block;
}
.menu li a:hover {
background: #333;
color: #fff;
-moz-box-shadow: 0 3px 10px 0 #CCC;
-webkit-box-shadow: 0 3px 10px 0 #ccc;
text-shadow: 0px 0px 5px #fff;
}
.menu li ul {
position: absolute;
top: 25px;
right: 0;
background-color: #fff;
display: none;
}
.menu li:hover ul,
.menu li.over ul {
display: block;
}
.menu li ul li {
border: 1px solid #c0c0c0;
display: block;
width: 150px;
}
<nav>
<ul class="menu">
<li><a href="#">Home</a>
</li>
<li><a href="#">About</a>
</li>
<li><a href="#">What we do?</a>
<ul>
<li><a href="#">What we do? 01</a>
</li>
<li><a href="#">What we do? 02</a>
</li>
<li><a href="#">What we do? 03</a>
</li>
</ul>
</li>
<li><a href="#">Links</a>
<ul>
<li><a href="#">Myotherwebsiteiscool</a>
</li>
</ul>
</li>
<li><a href="#">Contact</a>
<ul>
<li><a href="#">Form Contact</a>
</li>
<li><a href="#">Find us</a>
</li>
</ul>
</li>
</ul>
</nav>
关于html - 如何根据父项的右边缘打开超出的子菜单区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39329676/