【发布时间】:2018-09-20 19:40:21
【问题描述】:
我将 Flexbox 与 flex-wrap 一起使用,这样当 flex-items 的宽度相等时,项目将被包裹以使布局响应。
我希望实现姓名、电子邮件和电话水平对齐。
注意:虽然我可以将phone 变成另一个div 并应用justify between,但这不会使电子邮件对齐(以防名称太长)。我们有办法在保留环绕的同时保留网格吗?
#container {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.employee {
flex: 1;
width: 20em;
flex-direction: column;
align-items: center;
word-wrap: break-word;
}
$( () => {
fetch("https://randomuser.me/api/?results=10&nat=us&inc=name,picture,email,phone&seed=abc")
.then( r => r.json() )
.then(
j => {
j.results.map( (e, i) => {
$("#employee").clone(true)
.appendTo($("#container"))
.attr( 'id', "employee_"+i )
.find("img").attr( "src", e.picture.thumbnail ).end()
.find(".name").text( e.name.first + " " + e.name.last ).end()
.find(".email").text( e.email.repeat(i) ).end()
.find(".phone").text( e.phone ).end()
.show()
})
}
)
})
#container {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.employee {
flex: 1;
width: 20em;
flex-direction: column;
align-items: center;
word-wrap: break-word;
}
#employee {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="container">
<div class="employee" id="employee">
<img/>
<div class="name">
Name
</div>
<div class="email">
Email
</div>
<div class="phone">
Phone
</div>
</div>
</div>
【问题讨论】:
-
尝试如下设置电子邮件、电话、标题的最小高度。
-
抱歉,我不明白“关注”是什么意思。附带说明一下,对于员工姓名,它的范围可以从 1 行到 3 行,如果我将
min-height设置为 3 行,那么会有 1 行名称的行,然后是 2 个空行,看起来不适合... -
是的,没有任何空格如何使所有电子邮件,电话在同一行。
-
请参考这里:jsfiddle.net/7gvscLy0 所以如果
min-height的名字是3-line 那么可能有太多额外的空行。虽然table可以实现我的目标,但它没有响应(它不会将每行 3 个数据变成 2 个)。我想知道这是否可以实现。 -
显示:网格是一个选项吗?
标签: css flexbox alignment text-alignment