最近接到一个需求,要求商场导航里的文字最多显示两行,超出两行的省略号显示,查一些资料,又根据自己的需求,改了很多,直接上代码吧
<html> <head> <style type="text/css"> .main{ 360px; border: 1px solid #ccc; overflow: hidden; } .child{ float: left; height: 40px; overflow: hidden; padding: 10px; background-color:blanchedalmond; margin: 10px; } .itemWrap{ display:table-cell; vertical-align: middle; text-align: center; height: 40px; } .item{ font-size: 12px; font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; overflow:hidden; 80px; text-overflow:ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-box-pack: center; -webkit-box-align: center; -webkit-line-clamp:2; overflow: hidden; } </style> </head> <body> <div class="main"> <div class="child"> <div class="itemWrap"> <div class="item"> 测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据 </div> </div> </div> <div class="child"> <div class="itemWrap"> <div class="item"> 测试数据 </div> </div> </div> <div class="child"> <div class="itemWrap"> <div class="item"> 测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据 </div> </div> </div> <div class="child"> <div class="itemWrap"> <div class="item"> 测试数据 </div> </div> </div> <div class="child"> <div class="itemWrap"> <div class="item"> 测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据 </div> </div> </div> <div class="child"> <div class="itemWrap"> <div class="item"> 测试数据 </div> </div> </div> <div class="child"> <div class="itemWrap"> <div class="item"> 测试数据 </div> </div> </div> <div class="child"> <div class="itemWrap"> <div class="item"> 测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据 </div> </div> </div> </div> </body> </html>
效果图如下:
child主要是控制padding和背景颜色,浮动,itemwrap主要是为了垂直居中,item是真正的省略号实现;
注:在less里引入时,一定要记得不要编译-webkit开头的东西,加上less注释就好了
/*! autoprefixer: off */
-webkit-box-orient: vertical;
/*! autoprefixer: on */