使用css实现打开抽屉效果(css过渡动画)

方法一、使用高度方式,高度从0到展示进行过渡

html:

cpp 复制代码
 <div class="container">
       <div class="menu">菜单</div>
       <div class="box">
       </div>
    </div>

css:

cpp 复制代码
  .box {
        width: 400px;
        height: 0;
        background-color: red;
        transition: all 1s ease;
      }
      .menu{
        height: 50px;
      }
      .menu:hover ~ .box{
        height: 300px;
      }

方法二、使用定位方法,相对较麻烦

HTML代码:

cpp 复制代码
 <div class="container">
       <div class="menu">菜单</div>
       <div class="box">
          <div class="drawer"></div>
       </div>
    </div>

css

cpp 复制代码
.container{
        background-color: #fff;
      }
      .box{
        position: relative;
        overflow: hidden;
      }
       .drawer {
        width: 400px;
        height: 300px;
        background-color: red;
        overflow: hidden;
        position: absolute;
        top: -300px;
        transition: all 1s ease;
      }
      .menu{
        height: 50px;
      }
      .menu:hover ~ .box{ /* 悬浮时,在此处绘制容器宽高,可以避免在抽屉未打开时,占用高度 */
        width: 400px;
        height: 300px;
      }
      .menu:hover ~ .box .drawer{
        top: 0px;
      }
相关推荐
Beginner x_u15 分钟前
CSS 动画体系(二)—— Animation关键帧动画
前端·css·animation
T-shmily22 分钟前
CSS Grid 网格布局(display: grid)全解析
前端·css
风无雨2 小时前
滚动条上下按钮隐藏不生效的原因与修复(::-webkit-scrollbar-button)
css·css3·webkit
雾岛心情2 小时前
【HTML&CSS】HTML为文字添加格式和内容
前端·css·html
Mr Xu_4 小时前
巧用多背景图层打造精美 CSS 背景 —— 基于 SVG 的视觉合成技巧
前端·css
怪侠_岭南一只猿6 小时前
爬虫阶段一实战练习题:爬取豆瓣电影 Top250 复盘
css·经验分享·爬虫·python·学习·正则表达式
Beginner x_u7 小时前
Vue scoped 样式不生效的一个坑:CSS 选择器与 class 合并机制
前端·css·vue.js
XXYBMOOO7 小时前
Flarum 主题定制:从零打造你的赛博朋克/JOJO 风格社区(含全套 CSS 源码)
前端·css
じ星不离月か10 小时前
【记录】 跑马灯无限滚动
前端·css·跑马灯·无限滚动
kyriewen10 小时前
我敢打赌,你还不知道 display 还有这些骚操作!
前端·css·html