使Flex项目连续具有相同的宽度 [英] Make flex items have equal width in a row

查看:88
本文介绍了使Flex项目连续具有相同的宽度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果你看下面的例子,我希望头文件( h4.child-title )在父容器中具有相同的长度。



但是我没有成功实现这一目标。



任何帮助都是值得赞赏的。



.top-level {display:flex; flex-flow:row wrap;}。section {display:flex; flex-flow:排列nowrap; border:1px solid; margin-right:12px; margin-top:12px;}。section-child {display:flex; flex-flow:立柱; align-items:center; flex:1 1 0;}。child-title {white-space:nowrap;}。vertical-separator {width:1px; background-color:rgba(0,0,0,0.3); margin:8px;}

 < div class =top - 电平> < section class =section> < div claas =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < /节> < section class =section> < div claas =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < /节> < section class =section> < div claas =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < / section>< / div>  

解决方案

Flexbox方法



为了使文本项目( .section-child )等宽,你需要使用 flex:1 1 0 ,你已经完成了。这与 flex:1



相同。但是,这本身并不能达到有两个原因:


  1. .section-child , flex容器,而且在较大容器中的flex项目,默认情况下仅限于其内容的宽度。所以它不会扩展,文本会溢出容器。您还需要将 flex:1 应用于 .section


  2. 默认情况下,Flex项目的大小不能小于其内容的大小。初始设置是 min-width:auto 。因此, flex:1 无法平均分配容器空间,因为Flex项目无法收缩超过最长项目。您需要用 min-width:0




  3. 覆盖此行为

    .top-level {display:flex; flex-flow:row wrap;}。section {display:flex; flex-flow:排列nowrap; border:1px solid; margin-right:12px; margin-top:12px; flex:1; min-width:0;}。section-child {display:flex; flex-flow:立柱; align-items:center; flex:1; min-width:0;}。child-title {white-space:nowrap;}。vertical-separator {width:1px; background-color:rgba(0,0,0,0.3); margin:8px;}

     < div class =top - 电平> < section class =section> < div class =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < /节> < section class =section> < div class =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < /节> < section class =section> < div class =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < / section>< / div>  

    项目是相等的宽度。但是,因为您将文本设置为 nowrap ,所以它可能会溢出其边界。如果您删除 nowrap ,那么一切都很合适。

      .top-level {display:flex; flex-flow:row wrap;}。section {display:flex; flex-flow:排列nowrap; border:1px solid; margin-right:12px; margin-top:12px; flex:1; min-width:0;}。section-child {display:flex; flex-flow:立柱; align-items:center; flex:1; min-width:0;}。child-title {/ * white-space:nowrap; * /}。vertical-separator {width:1px; background-color:rgba(0,0,0,0.3); margin:8px;}  

     < div class =top - 电平> < section class =section> < div class =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < /节> < section class =section> < div class =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < /节> < section class =section> < div class =section-child> < h4 class =child-title>标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>更长的标题< / h4> <! - 这里有更多内容 - > < / DIV> < div class =vertical-separator>< / div> < div class =section-child> < h4 class =child-title>多得多的标题< / h4> <! - 这里有更多内容 - > < / DIV> < / div>< / div>  



查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆