HTML5 / CSS对齐列表项目取决于其他列的相互高度
我得到以下用例:
你可以看到三个相同的盒子:每个盒子都有一个大的矩形框,它有一个图片和可变的内容,因此具有可变的高度。 其余部分由一个列表组成,它是垂直对齐的底部,因此它们应该达到相同的高度。
我的目标是在每个框中“同步”
换句话说,就像Abhitalks所说,我想根据相互高度将列表项与其他内容列中的同行对齐。
现在,我使用display flex来将列表垂直对齐到元素的底部。 你可以在这里找到我用过的解决方案: 浮动div的垂直对齐
但是现在我遇到了问题,如果列表中没有相同的内容(每个列表项目超过两行,整个事情就会转移到顶部。
但是,在某种程度上可以使用flexbox模拟行行为,但实际上是否具有列结构?
我需要一个列结构,所以我可以轻松获得响应式布局。
希望你了解我的问题
提前致谢!
更新:
这是小提琴: http : //jsfiddle.net/a1yr4u84/3/
你可以看到,我在li的内容中做了一些内容,以使内容适合。
one
two one
two
three one
但是,我无法控制李的文本数量。 而且我不希望用户使用进行攻击,但让设计处理内容,所以我希望列中的列表行为像一行
https://stackoverflow.com/questions/32585885/html5-css-align-list-items-depending-on-other-columns-mutual-height/…三个相同的盒子:第一个大矩形部分具有可变内容,因此可变高度。 其余部分由一个列表组成,它是垂直对齐的底部,因此它们应该达到相同的高度。
你需要嵌套的flex
。 鉴于此标记:
https://stackoverflow.com/questions/32585885/html5-css-align-list-items-depending-on-other-columns-mutual-height/...
- https://stackoverflow.com/questions/32585885/html5-css-align-list-items-depending-on-other-columns-mutual-height/...
- https://stackoverflow.com/questions/32585885/html5-css-align-list-items-depending-on-other-columns-mutual-height/...
- https://stackoverflow.com/questions/32585885/html5-css-align-list-items-depending-on-other-columns-mutual-height/...
首先展开将在一行中布置列的包装器,并给出列的33%
(大约)的flex-basis
,以允许第一列中的可变内容空出:
.wrap { display: flex; } .wrap .col { flex: 1 0 33%; }
接下来, flex
列以在列中布局图像和内容列表。 此时不需要以flex-basis
:
.wrap .col { flex: 1 0 33%; display: flex; flex-direction: column; } .col img, .col .content { flex: 0 0 auto; }
为了使列表垂直对齐到底部,只需为列表内容提供margin-top:auto
:
.col .content { margin-top: auto; }
这是一个完整的例子..
小提琴: http : //jsfiddle.net/abhitalks/a1yr4u84/1/
片段 :
* { box-sizing: border-box; } .wrap { width: 80%; margin: 16px auto; padding: 12px; border: 1px solid grey; display: flex; } .wrap .col { flex: 1 0 33%; display: flex; flex-direction: column; } .col img, .col .content { flex: 0 0 auto; } .col img { width: 128px; display: block; margin: 2px auto; } .col .content { margin: auto 12px 0px 12px; }
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab, impedit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
- one
- one
- one
- one
- one
- one
将css line-height
设置为行对象。 所有都需要设置相同的高度。