存在CSS压缩布局问题,我找不出来。CSS Flex:容器中的文本转义
HTML:
<div class="image-view">
<div class="info">
<span class="label title">d37ci4x.jpg</span>
<span class="label scale">100%</span>
</div>
<img src="http://i.imgur.com/rfcsACA.png" />
</div>
CSS:
.image-view {
display: inline-block;
border: 1px #000 solid;
}
.image-view .info {
display: flex;
border-bottom: 1px #000 solid;
}
.image-view .info .title {
overflow: hidden;
white-space: nowrap;
flex: 5 1 100%;
}
.image-view .info .scale {
flex: 1 0 1em;
padding-left: 2em;
border-left: 1px #000 solid;
}
结果:
还住在http://jsfiddle.net/omhaohyd/
这里的问题是,“100%”文本以某种方式被推出到其容器外。删除填充没有帮助 - 它正确地缩小了容器并将文本向左移动,但容器也变小了,因此文本仍然流出。为.scale
提供更多空间(增加1em
并减少.title
的100%
)确实解决了这个问题,但在“100%”周围也增加了很多空白,而且我不想那么大。
这是在Lubuntu x64上的Firefox 30.0。
有趣。我不是100%的'flex-basis'。你的解决方案修复了逃跑的文本,但也使得该领域超过必要的;然而我玩了一下,得到了它的工作方式:'flex:1 0 3em' - 我正确理解这意味着“使用3em的基本大小,但增长到1倍,并缩小根据需要尽可能多的0x“? – Rena 2014-09-19 02:38:05
@Rena这是正确的。 Flex基础可以是一个固定的单位值(即“我希望你只是这个大”)或无单位的值(即“我希望你在相同的交叉轴上相对于其他容器的比例)”。但是,请注意,通过分配“3em”值,您将其宽度限制为3em,并且如果填充宽度,文本将溢出:) – Terry 2014-09-20 00:29:48