上图是微信 weui 里其中一个布局,使用了 flex。 左边的图片是固定宽度,右边的标题和内容是自适应宽度,当文字过多的时候会显示省略符号:
不废话上代码:
<article>
<div class="media_hd">
<img />
</div>
<div class="media_bd">
<h4 class="media_title">XXXXXXX标题一</h4>
<p class="media_desc">由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨道。</p>
</div>
</article>
article {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.media_hd {
margin-right: .8em;
width: 60px;
height: 60px;
line-height: 60px;
text-align: center;
img {
width: 100%;
max-height: 100%;
vertical-align: middle;
}
}
.media_bd {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
min-width: 0;
h4 {
font-weight: 400;
font-size: 17px;
width: auto;
overflow: hidden;
text-overflow: ellipsis;//文字超过盒子宽度显示省略符号
white-space: nowrap;//文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止
/*不明白微信为毛写那么多和换行相关的属性*/
word-wrap: normal;
word-wrap: break-word;//允许长单词换行到下一行
word-break: break-all;//使用浏览器默认的换行规则
}
p {
color: #999999;
font-size: 13px;
line-height: 1.2;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
}
再贴一个小 Demo ,来演示多行文字溢出自动显示省略号:
<style>
+ .box {
+ width: 400px;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+</style>
+
+<div class="box">
+ 【大众点评与美团网合并 王兴张涛担任联席CEO】
+ 大众点评网与美团网今天联合发布声明,宣布达成战略合作,
+ 双方已共同成立一家新公司。新公司将实施Co-CEO制度,
+ 美团CEO王兴和大众点评CEO张涛将同时担任联席CEO和联席董事长,
+ 重大决策将在联席CEO和董事会层面完成。
+</div>
以上代码目前仅支持webkit浏览器,so,移动端完美兼容,PC端就不造了。