我有一个子导航栏,有6个项目或者更多。我想要做的是,当浏览器调整大小时,会根据可用空间显示“更多”图标,并且随着视口大小的减小,下拉列表中的每个项目都会逐个进入子菜单。 / p>
我附上了设计要求的截图。我正在寻找一种方法来完成纯css或使用媒体查询。
任何帮助都将不胜感激。
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-6">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Brand</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-6">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div>
</nav>
答案 0 :(得分:4)
here是您所描述内容的一个实例。 (它的丑陋我没有花太多时间在造型上)
我们的想法是使用与第n个孩子选择器结合的媒体查询来仅显示所需的元素。
<ul class="nav">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul id="more">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
ul, li{
list-style:none;
}
.nav > li{
display:inline-block;
width:100px;
height:50px;
border:1px solid black;
font-size:20px;
text-align:center;
box-sizing:border-box;
padding-top:10px;
background:white;
margin:5px;
vertical-align:top;
}
.nav{
background:beige;
padding:10px;
height:55px;
overflow:hidden;
whitespace:no-wrap;
}
#more {
display:none;
margin:0;
padding:2px;
width:40px;
position:absolute;
top:20px;
right:0;
border-left:4px solid black;
padding-top:60px;
}
#more > li{
font-size:10px;
border:1px solid black;
width:100%;
margin:2px 0;
box-sizing:border-box;
display:none;
}
@media screen and (max-width: 700px) {
#more {
display:block;
}
#more:hover li:nth-child(6) {
display:block;
}
}
@media screen and (max-width: 600px) {
#more {
display:block;
}
#more:hover li:nth-child(5) {
display:block;
}
}