解说一中的方法不兼容火狐、IE浏览器,因此解说二会给出通用的css写法。css
原理:两个盒子a、b,文字内容放于盒子b,固定盒子a的高度及行高,超出a的内容隐藏,在结尾处放置省略号,以下图,红线圈出部分用省略号覆盖。浏览器
.a{ width: 300px; /*想要显示几行,高度就是行高*倍数*/ height: 52px; line-height: 26px; overflow: hidden; border: 1px solid #ddd; } .a::before{ float: left; width: 5px; content: ''; } .a::after{ height: 26px; content: "..."; line-height: 26px; width: 3em;/* 省略号宽度 */ margin-left: -1em;/* 使省略号在文字的最末端 */ position: relative; top: 26px; left: 100%; background-color: #fff; } .b{ float: right; margin-left: -5px; width: 100%; line-height: 26px; word-break: break-all; }
<div class="a"> <div class="b">在网页开发中,常常会遇到文本超出了限定的范围,尤为是屏幕尺寸的大小致使的,着实影响美观, 这个时候,就须要用css对其进行处理。下面的方法是我在实际工做中总结出来的,给你们参考一下。</div> </div>
超出盒子a的内容都被隐藏掉了,在第二行结尾处,用‘...’覆盖了其余的文字,效果以下图所示:spa
这个方法存在的问题是:使用的文字的格式,内容的不一样,有可能放置的省略号的位置可能不会那么正好合适,若是有更合理的方式,欢迎留言解答。以下图所示:code