【发布时间】:2019-06-13 01:22:09
【问题描述】:
我有多个无序列表,具有不同数量的元素,并且列标题中包含不同数量的文本。
我正在使用 flexbox 水平对齐它们,但在列相互对齐时遇到了困难。
编辑:需要注意的是,列标题类是可选的,可以删除,因此该项目只是一个普通的列表项。
当列标题被激活时,我需要列标题将列标题 li 的高度与最多的文本相匹配。我让 flexbox 水平对齐列表,但列没有对齐。
这是 JsFiddle:(https://jsfiddle.net/xk04m7g1/)
.column-stack {
display: -ms-flexbox;
display: flex;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 30px
}
.column-stack ul {
-ms-flex: none;
flex: none;
width: calc(33.333% - 10px);
}
.column-stack ul .column-header {
font-size: 12px;
text-transform: uppercase;
color: #006a4d;
font-weight: 500;
padding-bottom: 5px;
border-bottom: 1px solid #3a3a3a;
display: flex;
align-items: stretch;
/* Default */
justify-content: space-between;
}
<div class="column-stack">
<ul>
<li class="column-header">Header 1 One Line</li>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
<ul>
<li class="column-header">Header 2 Many Lines of Text this is many lines of text and is the longest column wow it keeps going and going and going like the energizer rabbit</li>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
<ul>
<li class="column-header">Header 3 Two Line at most on most use cases</li>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
</div>
无论该列中有多少文本,我都希望看到无序列表列标题居中并水平排列。救命!
【问题讨论】:
-
编辑:需要注意的是,列标题类是可选的,可以删除,这样该项目就只是一个普通的列表项目。
-
你描述的是一个表格。
-
这很可能是一张我应该拥有的表格 我将探索该解决方案 @ksav 您的分析非常有帮助!
-
你是怎么做到的?
-
@Ksav 最终将列拆分为自己的 div,这成为最明显的解决方案