背景
当设计期望在图文混排时,末尾的文字能够超出显示,这里的的末尾文字可能是在图片之前,也可能是图片之后的。
如果你刚好使用了flex布局,发现超出省略不可用,主要是出现省略号的效果不可用。
下面分不同的情况为大家分析,我们应该如何处理。
仍然父元素使用flex布局
左边元素内容是相对固定宽度的 ,判断其是否能显示完整,图片也能显示完整,那么左侧根据实际宽度,右边占据剩余宽度,然后右侧使用超出省略号即可。
<less>.flex-demo1{display:flex;overflow:hidden;height:50px;line-height:50px;.img{width:100px;}.right-content{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}}</less><div class='flex-demo1'><span>1 左边测试</span><img class='img' src='https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic3.zhimg.com%2Fv2-400c9f754471500acf943afdb5cc58c3_xl.jpg&refer=http%3A%2F%2Fpic3.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1642419082&t=32b5ffd10ac8fb84b3868d8855a4c39f' alt='' title=''/><span class='right-content'>eerteerteterteterteterteterteterteterteteerteterteteerteterteteertetertetetertett</span></div>
不确定左侧和右侧那边会超出,均分,然后均使用超出省略,左侧部分也设置这个效果
缺点:浪费文本的自动占用其正确的空间
<less>.flex-demo1{display:flex;overflow:hidden;height:50px;line-height:50px;align-items:center;.img{width:100px;}.content{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}}</less>
为什么一定要使用flex
就最终效果来说,如果超出省略是最难解决的效果,并且确实不确认文本是什么情况,这种时候,优先建议使用常规流布局,放弃flex布局,如果原本是希望flex实现多元素垂直居中,那么文本的垂直居中用行高,图片的垂直居中使用vertical-align:middle .
想提醒给大家的是,不要因为增加了flex弹性盒的布局方案,就忘记了常规的布局,以及常规布局中如何解决垂直居中的问题。
<less>.flex-demo1{overflow:hidden;height:50px;line-height:50px;text-overflow:ellipsis;white-space:nowrap;.img{width:100px;vertical-align:middle;}.content{line-height:50px;}}</less>
