我有一个固定高度和display: flex
的容器。我希望通过设置-webkit-flex-flow: column wrap;
以小柱优先的方式放置孩子。
任何人都可以解释一下chrome如何计算容器div(带绿色边框的div)的最终宽度,以及为什么在每个红色项目的右边留下如此多的可用空间。我想要的是让容器的宽度适合所有孩子,而不需要额外的空白空间。
如果使用纯css是不可能的,你可以为我提供另一种选择吗?
我正在使用Chrome v 29.0.1547.76
重现它的代码是:
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
position: fixed;
height: 90%;
padding: 0;
margin: 0;
list-style: none;
border: 6px solid green;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: column wrap;
justify-content: flex-start
align-content: flex-start;
align-items: flex-start
}
/** Just to show the elements */
body {
margin: 0;
padding: 0;
}
.flex-item {
background: tomato;
padding: 5px;
width: 100px;
height: 100px;
margin-top: 10px;
line-height: 150px;
color: white;
font-weight: bold;
font-size: 3em;
text-align: center;
}
</style>
</head>
<body>
<ul class="flex-container">
<li class="flex-item">1</li>
<li class="flex-item">2</li>
<li class="flex-item">3</li>
<li class="flex-item">4</li>
<li class="flex-item">5</li>
<li class="flex-item">6</li>
</ul>
</body>
答案 0 :(得分:-1)
Chrome自动将空格放在div和边框顶部之间,为了解决这个问题,你可以使用:
margin-bottom:100%;
为什么这样? margin-bottom:100%重置元素并向上移动项目。 您已尝试过:
execute()
但是这并不起作用,因为正文散布了页面html而不是单个元素。
完整的代码将在这里:
body {
margin: 0;
padding: 0;
}
&#13;
.flex-container {
position: fixed;
height: 90%;
padding: 0;
margin: 0;
list-style: none;
border: 6px solid green;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: column wrap;
justify-content: flex-start
align-content: flex-start;
align-items: flex-start
}
/** Just to show the elements */
body {
margin: 0;
padding: 0;
}
.flex-item {
background: tomato;
padding: 5px;
width: 100px;
height: 100px;
margin-bottom: 100%;
line-height: 150px;
color: white;
font-weight: bold;
font-size: 3em;
text-align: center;
}
&#13;