【发布时间】:2019-02-04 16:30:42
【问题描述】:
我有一个页面没有滚动(也没有垂直或水平)。身体是蓝色的。这个身体有 2 个孩子:
- 黄色,高度为 100%,有 8 个孩子(红色),宽度尽可能小,这取决于孩子的数量。红色的采用固定的已知高度和宽度。
- 白色,宽度为 100%(占据页面的其余部分并位于其右侧)
看看下面的sn-p。 我希望黄色 div 的高度为 100%,并且宽度最小,仅取决于子项的数量。
body {
background-color: blue;
display: flex;
flex-direction: row;
width: 100%;
height: 100%;
margin: 0;
}
html {
height: 100%;
}
.yellow {
background-color: yellow;
height: 100%;
}
.white {
background-color: white;
border: 4px solid green;
width: 100%;
}
.red {
display: inline-block;
height: 20px;
margin: 5px;
width: 35px;
background-color: red;
}
<body>
<div class="yellow">
<i class="red"></i>
<i class="red"></i>
<i class="red"></i>
<i class="red"></i>
<i class="red"></i>
<i class="red"></i>
<i class="red"></i>
<i class="red"></i>
</div>
<div class="white">
</div>
</body>
例如以下 6 种情况,每种情况的最小宽度和高度 = 页面高度的 100%。
例如当页面高度 =~ 5 个红色 div 例如当页面高度 =~ 3 个红色 div
我想要纯 css 解决方案(没有 js)。 Flex-box 没问题。
【问题讨论】:
-
html{height:100%}是你想要的吗? -
是的,但高度为 100% 的黄色 div 应采用最小宽度。我编辑了上面的 sn-p,所以黄色 div 有 4 列(红色方块),但可以容纳 2。我希望它能够 flex-wrap 孩子。