我找不到一种方法来对div进行垂直对齐,在溢出时换行到第二列...
我有一个固定高度的div,里面我有一个动态可变数量的文本,每个文本都包含在一个固定宽度的div中。
我想以垂直对齐方式显示文本。如果空间不足,则应使用第二列。 我尝试使用float和display:inline-block但元素不会低于对方。
我认为通过图片更容易理解:
纯CSS解决方案将是最好的!
以下是问题的基本html代码:
<div class="container" style="height: 70px; background-color: lightblue;">
<div style="width: 100px;">Alsace</div>
<div style="width: 100px;">Bretagne</div>
<div style="width: 100px;">Centre</div>
<div style="width: 100px;">Lorraine</div>
<div style="width: 100px;">Picardie</div>
</div>
上下文:在主div的左侧,我有一个可以选择不同县的国家地图,当选择一个县时,我想在地图附近显示它的名字。这就是为什么我希望文本最接近左侧。
答案 0 :(得分:5)
更好的方法:
.container {
display: flex;
flex-flow: column wrap;
}
感谢@Roberrrt
可以使用display: flex;
演示:https://jsfiddle.net/88p36j74/
您将包装器高度设置为&#39;项高度&#39; x&#39;垂直项目计数&#39;。
.container {
display: flex;
flex-direction: column;
align-content: flex-start;
flex-wrap: wrap;
height: 250px;/* 5 items x 50px = 250px*/
}
.container div {
height: 50px;
width: 100px;
background: red;
}
答案 1 :(得分:1)
您可以使用column-count
。 1
.container {
height: 90px;
background-color: lightblue;
column-count: 2;
column-fill: auto;
}
.container>div { width: 100px; height: 20px; }
&#13;
<div class="container">
<div>Alsace</div>
<div>Bretagne</div>
<div>Centre</div>
<div>Lorraine</div>
<div>Picardie</div>
</div>
&#13;
答案 2 :(得分:0)
Bonjour =) 您需要将div包装在另外两个div中,表示您想要的列。 这会产生类似的结果:
<div class="container" style="height: 70px; background-color: lightblue;">
<div class="column" style="float:left;">
<div style="width: 100px;">Alsace</div>
<div style="width: 100px;">Bretagne</div>
<div style="width: 100px;">Centre</div>
<div style="width: 100px;">Lorraine</div>
</div>
<div class="column" style="float:left;">
<div style="width: 100px;">Picardie</div>
</div>
</div>
这样的东西应该可以工作,你可能需要在两个div上添加固定宽度。