今天在跳板群那里看到一个神奇的样式,效果:javascript
感受十分神奇,由于一开始觉得他是只有一个P元素包着文字而后最后一个自动截取文字,并且最后一行还能够提早截取???这怎么作到的,而后想了一下css怎么作,好像怎么都不能够在最后一行提早截取css
css多行截取方法是:html
overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
然而这个方法只能实现多行截取,不能让最后一行提早截取;若是只是靠css来截取的话 貌似是不能够的,理由如图:java
溢出的部分直接把空间撑开,不会提早截取。web
因此只能用js来截取了。JS要怎么截取?一开始我是不知道的,直到看到了其余前辈的博客:app
http://www.cnblogs.com/milkmap/archive/2013/05/27/3101325.html;spa
根据这个博客本身写了截取的jscode
var element = $("div"); var element2 = $("div p"); var h = element.height()-20; var v = ''; var val = element2.html(); console.log(val) while(h< element2.height()){ v = element2.html(); v = v.substring(0,v.length - 1); element2.html(v); } var val2 = val.replace(v,""); element.append("<p style='width: 120px;overflow: hidden;text-overflow: ellipsis;word-break: keep-all;display: inline-block;'>"+val2+"</p>"); element.append("<span>详细</span>")
核心部分就是循环那段了,经过判断容器大小,来截取字符串,看完博客后才知道能够这样截,果真要好好看javascript的原生API了。htm
最后附上css,htmlblog
html,body{ line-height:20px; } p{ padding:0px; margin:0px; } .row{ width: 200px; border: 1px solid #000; line-height: 20px; max-height: 60px; clear: both; overflow: hidden; } span{ display: inline-block; float: right; color: white; background: black; }
<div class="row">
<p>在1815年,正值拿破仑被流放厄尔巴岛时,一个既年轻又成功的商船水手爱德蒙·唐泰斯,在船长利克莱尔濒死的时刻接受了船长指挥权,并回到了家乡马赛迎娶他的未婚妻美蒂丝。利克莱尔,一个拿破仑的支持者,吩咐唐泰斯运送两样物品,一个是给予位于厄尔巴岛上的马歇尔·伯特兰德的包裹,一个是从厄尔巴岛上寄出给予一位居住于巴黎的神秘男子的信件。这封神秘信件使唐泰斯两位妒忌他的朋友,在另外一位朋友的建议下指控唐泰斯叛国。马赛的首席检察官韦尔福,虽然平时为人正直,开始时也同情唐泰斯,但看到信件的神秘收信人是他父亲后,未经调查便判决唐泰斯终身监禁于海上的孤岛监狱伊夫堡,而且于同时烟灭了做为证据的信件。在他被囚在伊夫堡的十四年中,他与亚伯·法利亚成为了朋友,一名声称拥有大量财宝并试图挖地道逃狱的老囚犯。法利亚将一辈子所学教授于唐泰斯,并在死前将藏于基督山的财宝告知于唐泰斯。1829年,法利亚死去后,唐泰斯便装扮法利亚的尸体逃离了伊夫堡,并被一艘走私船给救起,在跟走私犯一块儿工做数个月后,他来到了基督山,他佯装成受伤的模样,并说服走私犯暂时将他置于基督山,趁著这段时间前往财宝的藏置处。在找到了财宝以后,唐泰斯回到了故乡马赛,得知了本身的父亲贫穷潦倒而死;他建造了一艘船,将剩余的财宝藏在船上,接着向塔斯卡尼政府收购基督山及伯爵的头衔。回到了马赛,唐泰斯便开始计划他的复仇,但在那以前,他帮助了一些在他入狱前帮助过他的人。在1815年,正值拿破仑被流放厄尔巴岛时,一个既年轻又成功的商船水手爱德蒙·唐泰斯,在船长利克莱尔濒死的时刻接受了船长指挥权,并回到了家乡马赛迎娶他的未婚妻美蒂丝。利克莱尔,一个拿破仑的支持者,吩咐唐泰斯运送两样物品,一个是给予位于厄尔巴岛上的马歇尔·伯特兰德的包裹,一个是从厄尔巴岛上寄出给予一位居住于巴黎的神秘男子的信件。这封神秘信件使唐泰斯两位妒忌他的朋友,在另外一位朋友的建议下指控唐泰斯叛国。马赛的首席检察官韦尔福,虽然平时为人正直,开始时也同情唐泰斯,但看到信件的神秘收信人是他父亲后,未经调查便判决唐泰斯终身监禁于海上的孤岛监狱伊夫堡,而且于同时烟灭了做为证据的信件。在他被囚在伊夫堡的十四年中,他与亚伯·法利亚成为了朋友,一名声称拥有大量财宝并试图挖地道逃狱的老囚犯。法利亚将一辈子所学教授于唐泰斯,并在死前将藏于基督山的财宝告知于唐泰斯。1829年,法利亚死去后,唐泰斯便装扮法利亚的尸体逃离了伊夫堡,并被一艘走私船给救起,在跟走私犯一块儿工做数个月后,他来到了基督山,他佯装成受伤的模样,并说服走私犯暂时将他置于基督山,趁著这段时间前往财宝的藏置处。在找到了财宝以后,唐泰斯回到了故乡马赛,得知了本身的父亲贫穷潦倒而死;他建造了一艘船,将剩余的财宝藏在船上,接着向塔斯卡尼政府收购基督山及伯爵的头衔。回到了马赛,唐泰斯便开始计划他的复仇,但在那以前,他帮助了一些在他入狱前帮助过他的人。</p>
</div>
这个方法,感受其实也不太好,由于若是要到实际应用的话一个商城这么多个标题或者备注,若是都要这样处理的话。。。感受while循环次数是否是有点多了。。。。