在html文字展开更多,不用 JS 显示“更多”的按钮来展开更多内容

原标题:不用 JS 显示“更多”的按钮来展开更多内容

一个div设置了overflow:hidden,里面的内容不定的,我想在内容被修剪的时候显示出一个按钮用于展开,这种效果css能做到吗?

这是来自一个群里的问题,当时我还在动车上,拿着手机看到了这个问题后,脑中出现的第一个想法是这样的:

cfd7e800d21093408c382389b8b033c1.png

用手机中的备忘录画了一个草稿,然后简单描述了自己的想法。设置一个空的标签用来覆盖“更多”这个按钮,而这个空的标签会被文字内容顶下来,直到文字的“更多”的出现。

不过当时群里人太多了,或者我的想法也稍微有点天真吧,毕竟我自己也没证实过,只是一个很突兀的临时想法。后来话题就变成怎么用 CSS 和 HTML 来实现更多的切换,这个之前我也写过一个类似的《纯 CSS 方式实现内容区域的更多展示效果》。

周末的两天时间要么去找朋友玩,要么就是摊在沙发上玩游戏看电影了,电脑也没开。昨晚做了一个简单的 demo 之后,粗略的实现了一下效果,但也不知道是不是最终的效果了。不过无所谓,既然自己做了这个 demo,那么就干脆利用一点空余时间再完善一下,以及记录一下吧。

demo:http://lab.tianyizone.com/demo/show-more-btn.html

设想

最初的设想在前面用草图画了,简单来说,就是把“更多”这个按钮通过 position: absolute; bottom: 0; 定位在模块的底部,然后再通过一个空的元素覆盖在这个“更多”按钮之上,接着就是通过内容区域的增加,一直把空的元素推出固定高度的部分。

当空的元素被推出去之后,“更多”按钮也就显示出来了。

b262b29f92c0d9667f4f684c1e35264a.png

不过这里的“更多”目前设置的是 bottom:0; right:0;,如果这个时候再加上一个 left: 0; 的话,那么就会占据底下的一行,具体就看需求是怎么样的了。

一些说明

在使用这个方式来实现的时候,需要注意的是:

行高,以免文字覆盖不全;

“更多”的宽度,以免覆盖不全;

简单来说,就是要通过背景色的覆盖实现,那么就要注意元素的宽度和高度的利用,避免“走光”。

录制一个简单的效果

1569dbfaa998f3531f9f8bf2332df8b1.gif

代码部分

首先是 HTML 部分的代码:

更多... 这里就是文字内容部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值