小说
鲜活的文字,个性的文风,牛逼的主角,跌宕的剧情。跟随着作者,睁大眼睛做梦,勾勒出一幅幅模糊又清晰的画面,构建出一个个虚幻又真实的世界,是一种创世神般的享受。
后端渲染和前端渲染,分类依据在于浏览器到底做了什么事情。
后端渲染HTML的情况下,浏览器会直接接收到经过服务器计算之后的呈现给用户的最终的HTML字符串,这里的计算就是服务器经过解析存放在服务器端的模板文件来完成的,在这种情况下,浏览器只进行了HTML的解析,以及通过操作系统提供的操纵显示器显示内容的系统调用在显示器上把HTML所代表的图像显示给用户。
前端渲染就是指浏览器会从后端得到一些信息,这些信息或许是适用于题主所说的angularjs的模板文件,亦或是JSON等各种数据交换格式所包装的数据,甚至是直接的合法的HTML字符串。这些形式都不重要,重要的是,将这些信息组织排列形成最终可读的HTML字符串是由浏览器来完成的,在形成了HTML字符串之后,再进行显示。
根据前后端渲染的不同,模板引擎也分为两种,后端模板引擎和前端模板引擎。而前端模板引擎,就是本文要说的JavaScript模板引擎。
1 | width: 300px; |
如果字符串长度超过300px,那么超出部分就变成...
。
1 | display: -webkit-box; |
因为使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;
-webkit-line-clamp用来限制在一个块元素显示的文本的行数。为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:
display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
问题描述:
一段文字限定行数,使用css把多余文字显示为省略号,请问怎么通过js判断这段文字是否有文字显示为省略号?
王晨帅哥提供了一个思路:取消css的-webkit-line-clamp属性,看看元素高度是否发生了变化,变化了就是有文字显示为省略号。
好想法,最后小编改进后如下:这段文字在页面上放两份,一份限定行数,正常显示;另一份不限定行数,隐藏起来。然后,对比这两段文字的高度是否相同。
具体实现:
1 | // scss部分 |
1 | // js部分 |
后来张伟林帅哥提供了一个更好的思路:既然已经知道了限定的行数,那么判断一个高度就可以了。结合line-height,高度用scrollheight,判断scrollheight > line-height*你决定的行数。
小编马上搜索了一个scrollheight,发现,原来scrollHeight可以返回元素的完整高度。那么,比较一下scrollHeight和height不就可以了么?
具体实现:
1 | // js部分 |
利用js也可以实现文本溢出显示省略号,可以参考书签中的dotdotdot,很形象的名字。。。
CSS实现单行、多行文本溢出显示省略号(…)
http://www.daqianduan.com/6179.html
jQuery.dotdotdot
http://www.bootcdn.cn/jQuery.dotdotdot/