因此,现在将其设置为96%,直到您真正压紧屏幕为止看起来还可以-右手div有点饿
我想我可以原样保留它,但是感觉不对-就像必须要说的那样:
正确的人永远是相同的;您在左边-您得到了剩下的一切
.ar-course-nav {
cursor: pointer;
padding: 8px 12px 8px 12px;
border-radius: 8px;
}
.ar-course-nav:hover {
background-color: rgba(0, 0, 0, 0.1);
}
<br/>
<br/>
<div class="ar-course-nav" style="display:flex; justify-content:space-between;">
<div style="width:96%;">
<div style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">
<strong title="Course Name Which is Really Quite Long And Does Go On a Bit But Then When You Think it's Stopped it Keeps on Going for even longer!">
Course Name Which is Really Quite Long And Does Go On a Bit But Then When You Think it's Stopped it Keeps on Going for even longer!
</strong>
</div>
<div style="width:100%; display:flex; justify-content:space-between;">
<div style="color:#555555; margin-right:8px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;" title="A really really really really really really really really really really really long department name">
A really really really really really really really really really really really long department name
</div>
<div style="color:#555555; text-align:right; white-space:nowrap;">
Created: 21 September 2016
</div>
</div>
</div>
<div style="margin-left:8px;">
<strong>></strong>
</div>
</div>
#1 楼
使用flex-grow
属性可以使弹性项目消耗主轴上的可用空间。此属性将尽可能扩展项目,将其长度调整到动态环境,例如屏幕调整大小或
一个常见的例子是
flex-grow: 1
,或者使用简写属性flex: 1
。因此,而不是div上的
width: 96%
,请使用flex: 1
。 您写道:
因此,现在将其设置为96%,在您真正压紧屏幕之前看起来还可以-然后按右侧hand div有点饿了。
固定宽度div的压缩与另一个flex属性有关:
flex-shrink
默认情况下,将flex项目设置为
flex-shrink: 1
,以便使其收缩以防止容器溢出。要禁用此功能,请使用
flex-shrink: 0
。有关更多详细信息,请参阅
flex-shrink
答案中的因素部分:flex-basis和width有什么区别?
在此处了解有关沿主轴进行弯曲对齐的更多信息:
在CSS Flexbox中,为什么没有“ justify-items”和“对齐自我”属性?
在此处了解有关沿横轴对齐的更多信息:
flex-wrap如何与align-self,align-项目和对齐内容?
评论
我遇到了相同的情况,并使用了flex-grow:1与flex:并没有相同的效果:1.您是否知道为什么会有不同? (我解决了后者的问题,thx)
– WhGandalf
18年9月12日在15:39
使用flex-grow:1时,flex-basis属性保持默认值auto。使用flex:1,flex-basis属性更改为0。有关详细评论,请参见我的回答:stackoverflow.com/q/43520932/3597276 @WhGandalf
–迈克尔·本杰明(Michael Benjamin)
18/09/12在22:26
flex-shrink是我的关键:)
–pixelearth
19年4月1日在5:33
#2 楼
基本上,我试图使我的代码在“行”上有一个中间部分,以自动调整两侧的内容(在我的情况下,是虚线分隔符)。就像@Michael_B建议的一样,关键是在行容器上使用display:flex
,并至少确保行上的中间容器的flex-grow
值比外部容器至少高1(如果外部容器未应用任何flex-grow
属性) ,对于flex-grow
,中间容器只需要1。)。这是我正在尝试做的图片,以及如何解决该问题的示例代码。
编辑:虚线底部边框根据您的浏览器显示方式,可能看起来很奇怪。我个人建议使用黑色圆圈SVG作为重复的背景图像,其大小和位置应适当设置在中间容器的底部。我有时间时会添加此替代解决方案。
.row {
background: lightgray;
height: 30px;
width: 100%;
display: flex;
align-items:flex-end;
margin-top:5px;
}
.left {
background:lightblue;
}
.separator{
flex-grow:1;
border-bottom:dotted 2px black;
}
.right {
background:coral;
}
<div class="row">
<div class="left">Left</div>
<div class="separator"></div>
<div class="right">Right With Text</div>
</div>
<div class="row">
<div class="left">Left With More Text</div>
<div class="separator"></div>
<div class="right">Right</div>
</div>
<div class="row">
<div class="left">Left With Text</div>
<div class="separator"></div>
<div class="right">Right With More Text</div>
</div>
评论
您还可以使用grid-template-rows / columns