css展开与收缩动画

改变高度,利用transition过渡效果。

      .box {
        width: 300px;
        height: 20px;
        transition: height 0.3s;
        overflow: hidden;
        background: rgba(0, 0, 0, 0.05);
      }
      .box:hover {
        height: 300px;
      }
      <div class="box">
        君不见黄河之水天上来,奔流到海不复回。
        君不见高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。
        天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。
        岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。
        钟鼓馔玉不足贵,但愿长醉不愿醒。 古来圣贤皆寂寞,惟有饮者留其名。
        陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。
        五花马、千金裘,呼儿将出换美酒,与尔同销万古愁。
      </div>

效果如图
在这里插入图片描述
在日常开发中,我们往往需要从后台获取数据,此时我们不知道数据占据具体高度,也就是展开后的高度,此时将height设置为auto

      .box {
        width: 300px;
        height: 20px;
        transition: height 0.3s;
        overflow: hidden;
        background: rgba(0, 0, 0, 0.05);
      }
      .box:hover {
        height: auto;
      }

此时过渡效果transition失去了作用
在这里插入图片描述
解决方法,用max-height

注意:这个高度尽可能比实际高度大一些,太大会导致动画过渡时间不匹配,太小会导致内容展示不完整。

      .box {
        width: 300px;
        max-height: 20px;
        transition: max-height 0.3s;
        overflow: hidden;
        background: rgba(0, 0, 0, 0.05);
      }
      .box:hover {
        max-height: 600px; 
      }

在这里插入图片描述

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS中,实现点击按钮折叠展开效果可以通过利用CSS的选择器和伪类,结合使用CSS动画和过渡效果来实现。 首先,我们需要一个具有点击功能的按钮,在HTML中可以用`<button>`标签或者自定义的`<div>`元素来实现。这个按钮可以用来触发展开或折叠内容的动作。 然后,我们可以利用CSS的选择器选中要展开或折叠的内容。可以是一个段落(`<p>`标签),一个列表(`<ul>`或`<ol>`标签),或者一个容器元素(`<div>`标签)。 接下来,我们可以使用CSS的伪类选择器,比如`:hover`,`:focus`或者`:target`来设置按钮被点击时要执行的动作。比如,当按钮被点击时,我们可以通过`display`属性将内容的显示模式设置为`block`或者`none`来实现展开或折叠的效果。 我们还可以通过CSS动画和过渡效果来实现平滑的展开或折叠效果。可以使用`transition`属性来设置内容的过渡效果(比如渐变,移动等),使用`animation`属性来设置动画效果(比如旋转,缩放等)。 最后,我们可以通过CSS的媒体查询来实现响应式设计。根据不同的屏幕大小或设备类型,我们可以设置不同的展开或折叠效果,以适应不同的屏幕尺寸和设备。 综上所述,通过选择器、伪类、动画、过渡效果和媒体查询等CSS属性和功能的灵活组合,我们可以实现点击按钮折叠展开的效果,增强网页的交互性和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值