【发布时间】:2016-05-14 17:45:49
【问题描述】:
我有以下代码:http://codepen.io/anon/pen/rxZRJP?editors=1100
HTML:
<nav class="navigation">
<li class="navigation-item" style="background: #003f8f">
<a href="#">1</a>
</li>
<li class="navigation-item" style="background: #548122">
<a href="#">2</a>
</li>
<li class="navigation-item" style="background: #f4a628">
<a href="#">3</a>
</li>
<li class="navigation-item" style="background: #d21527">
<a href="#">4</a>
</li>
</nav>
CSS:
.navigation {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.navigation-item {
display: flex;
flex: 1 1 20%;
height: 190px;
list-style-type: none;
align-items: flex-end;
justify-content: center;
padding: 15px;
margin: 15px;
}
.navigation-item a {
color: #ffffff;
text-decoration: none;
font-size: 24px;
display: flex;
height: 100%;
width: 100%;
justify-content: center;
align-items: center;
}
如果您将视口大小调整为 1200 像素左右,则第四个项目将环绕并在其自己的单行上增长。
为防止第四项被挑出,我可以编写一个具有固定视口大小的@media-query,然后更改flex-basis 或给这些项目一个min-width。
所以我的问题是:
有没有更灵活的方法,不挑出任何项目?
编辑:
我希望物品能够包装,并且我希望物品能够填满所有可用空间。所以删除flex-grow 或flex-wrap 并不是一个真正的选择。
【问题讨论】:
-
你的意思是相同的
width但它们应该缩小吗? -
@NenadVracar 是的,第四个项目应该缩小到其他三个项目的宽度,或者第三个项目应该与第四个项目一起包裹。如果这对你有意义....
-
像这样删除
flex-wrap: wrap;jsfiddle.net/m7dfvw24/4
标签: html css media-queries flexbox