html - 带有列表的嵌套下拉菜单
问题描述
我真的很想找出我的错误,为什么这对第 4 级不起作用。直到第 3 级才有效。我想要一个下拉菜单隐藏父母的孩子。我对 html/CSS 很陌生,我认为错误在 CSS 中?我以为我为4级正确调整了它...
这是代码:
<!DOCTYPE html>
<html>
<head>
<style>
html, body {
margin:0;
padding:0;
height:100%;
}
* {box-sizing: border-box;}
.container {
height:100%;
}
a {
color:#fff;
text-decoration:none;
border-bottom:1px dotted #fff;
padding:0px 0px 20px 0px;
width:100%;
display:block;
height:100%;
}
li {
padding:20px 20px 0 20px;
width:100%;
color:#fff;
}
.container ul {height:100%;}
.container > ul {
width:250px;
background-color:#224490;
position:relative;
overflow:visible;
}
.container > ul > li {}
.container > ul > li:hover {background-color:#0f1e41;}
.container > ul > li > ul {
display:none;
position:absolute;
right:-250px;
top:0;
width:250px;
background-color:#18316a;
}
.container > ul > li:hover > ul {
display:block;
}
.container > ul > li > ul >li:hover {background-color:#0f1e41;}
.container > ul > li > ul > li > ul {
display:none;
position:absolute;
right:-250px;
top:0;
width:250px;
background-color:#112551;
}
.container > ul > li > ul > li:hover ul {
display:block;
}
.container > ul > li > ul > li > ul > li:hover {background-color:#0f1e41;}
.container > ul > li > ul > li >ul >li:hover ul {
display:block;
}
.container > ul > li > ul > li >ul >li >ul >li:hover ul {
display:block;
}
.container > ul > li > ul > li > ul >li >ul >li:hover {background-color:#0f1e41;}
.container > ul > li > ul > li > ul >li > ul {
display:none;
position:absolute;
right:-250px;
top:0;
width:250px;
background-color:#112551;
}
.container > ul > li > ul > li > ul >li>ul >li > ul {
display:none;
position:absolute;
right:-250px;
top:0;
width:250px;
background-color:#112551;
}
/* .container > ul > li > ul > li ul li ul li {
border-bottom:1px dotted #fff;
padding:20px;
} */
</style>
</head>
<body>
<div class="container">
<ul class="parent">
<li>str1str2str34
<ul class="child">
<li>A
<ul class="parent">
<li>a11</li>
<li>a12 </li>
</ul>
</li>
<li>B
<ul class="parent">
<li>B1
<ul class="child">
<li>b11</li>
<li>b12 </li>
</ul>
</li>
<li>B2
<ul class="child">
<li>b21 </li>
<li>22 </li>
<li>23 </li>
</ul>
</li>
<li>B3
<ul class="child">
<li>B31
<ul class="parent">
<li>b31</li>
<li>b32 </li>
</ul>
</li>
<li>B32
<ul class="parent">
<li>b41</li>
<li>b42</li>
<li>b43 </li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>C
<ul class="parent">
<li>c11</li>
<li>c12
<ul class="child">
<li>b41</li>
<li>b42</li>
<li>b43 </li>
</ul>
</li>
<li>c13 </li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<script>
$('.child').hide(); //Hide children by default
$('.parent').children().click(function () {
event.preventDefault();
$(this).children('.child').slideToggle('slow');
$(this).find('span').toggle();
});
</script>
</body>
</html>
解决方案
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
ul {
list-style: none;
padding: 0;
margin: 0;
}
li {
color: #fff;
padding: 1rem;
}
li:hover {
background-color: rgb(4, 50, 83);
}
.container>ul {
width: 250px;
background-color: #224490;
position: relative;
height: 100vh;
}
ul li{
display: block;
position: relative;
background-color: #224490;
}
ul li:hover>ul{
display: block;
position: absolute;
width: 250px;
height: 100%;
left: 250px;
top: 0;
}
ul ul{
display: none;
}
ul li {
background-color: #336699;
}
ul li:hover {
background-color: #5599aa;
}
<div class="container">
<ul class="lists">
<li class="parent">str1str2str34
<ul class="child">
<li class="parent">A
<ul class="child">
<li>a11</li>
<li>a12 </li>
</ul>
</li>
<li class="parent">B
<ul class="child">
<li class="parent">B1
<ul class="child">
<li>b11</li>
<li>b12 </li>
</ul>
</li>
<li class="parent">B2
<ul class="child">
<li>b21 </li>
<li>22 </li>
<li>23 </li>
</ul>
</li>
<li class="parent">B3
<ul class="child">
<li class="parent">B31
<ul class="child">
<li>b31</li>
<li>b32 </li>
</ul>
</li>
<li class="parent">B32
<ul class="child">
<li>b41</li>
<li>b42</li>
<li>b43 </li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="parent">C
<ul class="child">
<li>c11</li>
<li class="parent">c12
<ul class="child">
<li>b41</li>
<li>b42</li>
<li>b43 </li>
</ul>
</li>
<li>c13 </li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
推荐阅读
- solidity - testrpc 上的 oraclize_newRandomDSQuery (Oraclize)
- batch-file - 如何转义等于 = 登录 VBS Shell 命令参数
- javascript - 如何使用 rollup 在非严格模式下处理 JS 文件?
- java - 获取索引序列
- android - 仅在单击 BottomNavigationView 时显示的项目
- firebase - firebase实时数据库获取不存在的孩子抛出异常
- mysql - 如何替换此 OR 条件
- android - 在 Kotlin 中使用 Anko 时如何为 SQLite 表定义非空字段?
- go - 什么时候应该将数据传递给模板,什么时候调用函数?
- kubernetes - Pod 无限期地停留在 PodInitializing 状态