CSS_高度自动过渡 auto height

方法一 grid 布局中的 fr 单位(推荐使用)

<div class="wrap"><button class="trigger">鼠标放上来试试</button><div class="grid"><div><p>高度自动过渡</p></div></div>
</div>
<div class="wrap"><button class="trigger">鼠标放上来试试(较多文本)</button><div class="grid"><div><p>高度自动过渡,这里有一些有趣的、你可能不知道的HTML、CSS、JS小技巧技巧,比如这篇文章,如何让auto height 支持过渡动画?一起看看吧</p></div></div>
</div>

css

.trigger {border: 0;background-color: royalblue;color: #fff;outline: 0;font-size: 16px;padding: 0.4em 1em;border-radius: 0.2em;cursor: pointer;
}.grid {position: absolute;margin-top: 10px;max-width: 250px;border-radius: 5px;display: grid;grid-template-rows: 0fr;transition: 0.3s;overflow: hidden;background-color: rgba(0, 0, 0, 0.65);color: #fff;
}.grid>* {min-height: 0;padding: 0 10px;
}.wrap:hover .grid {grid-template-rows: 1fr;
}

方法二 max-height

但是有一个局限性,高度差异越大,过渡效果越糟糕,假设元素真实高度只有 100px,如果 max-height为800px,那只有前1/8有动画

<div class="wrap"><button class="trigger">鼠标放上来试试(较多文本)</button><div class="grid"><div><p>高度自动过渡,这里有一些有趣的、你可能不知道的HTML、CSS、JS小技巧技巧,比如这篇文章,如何让auto height 支持过渡动画?一起看看吧</p></div></div>
</div>
.trigger {border: 0;background-color: royalblue;color: #fff;outline: 0;font-size: 16px;padding: 0.4em 1em;border-radius: 0.2em;cursor: pointer;
}.grid {max-height: 0;min-height: 0;overflow: hidden;transition: max-height ease-out 0.2s;width: 200px;
}.wrap:hover .grid {max-height: 500px;	/*大概的值,需要超过元素高度*/transition: max-height ease-in 0.2s;
}

效果为使用grid布局
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4941.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux服务器同步Windows目录同步-rsync

前言 最近需要&#xff0c;Linux的服务器同步Windows的一个目录。查了下&#xff0c;大概有三种方法&#xff1a;网盘同步&#xff1b;rsync同步&#xff1b;挂载目录。 网盘同步&#xff0c;可以选择搭建一个Nextcloud 。但是问题在于&#xff0c;我需要的是&#xff0c;客户…

LangChain-Agent自定义Tools类 ——输入参数篇(二)

给自定义函数传入输入参数&#xff0c;分别有single-input 参数函数案例和multi-input 参数函数案例&#xff1a; from langchain.agents import Tool from langchain.tools import BaseTool from math import pi from typing import Union from math import pi from typing …

金蝶云星空财务软件被locked勒索病毒攻击后如何更快解密数据库数据?

金蝶云星空财务软件是一款广泛应用于企业财务管理领域的软件&#xff0c;然而&#xff0c;近期很多企业的金蝶云星空财务软件遭受到了locked勒索病毒的攻击&#xff0c;导致数据库数据被加密。而这次的locked勒索病毒采用了新的加密形式&#xff0c;它不仅能够扫描出各种软件系…

LLM 应用参考架构:ArchGuard Co-mate 实践示例

随着&#xff0c;对于 LLM 应用于架构领域探索的进一步深入&#xff0c;以及 ArchGuard Co-mate 开发进入深入区&#xff0c;我们发现越来越多的通用模式。 在先前的文章里&#xff0c;我们总结了一系列的设计原则&#xff0c;在这篇文章里&#xff0c;我们将介绍 ArchGuard Co…

数字信号的载波传输

从信号传输质量来看&#xff0c;数字系统优于模拟系统。 由于数字基带信号的频谱包含低频成分&#xff0c;而许多重要的通信信道是带通型的&#xff0c;比如无线信道和许多有线信道&#xff0c;这时需要调制成数字频带信号。 数字调制与模拟调制原理基本相似&#xff0c;有调幅…

STM32单片机(三)第二节:GPIO输出练习3(蜂鸣器)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

UWB超宽带定位技术的原理及定位方法

uwb定位技术即超宽带技术&#xff0c;它是一种无载波通信技术&#xff0c;利用纳秒级的非正弦波窄脉冲传输数据&#xff0c;因此其所占的频谱范围很宽。传统的定位技术是根据信号强弱来判别物体位置&#xff0c;信号强弱受外界 影响较大&#xff0c;因此定位出的物体位置与实际…

centos8.x系统安装K8S,kubernetes集群v1.23.9,docker支持的最后一个版本

1. 部署环境主机&#xff08;条件说明&#xff09; 卸载podman&#xff0c;centos默认安装了podman容器&#xff08;不管有没有&#xff0c;执行下总没错&#xff09;&#xff0c;可能与docker存在冲突 #环境准备 master 192.168.186.128 CentOS Linux release 8.5 (Core) n…

CentOS 挂载ntfs格式U盘

1、查看磁盘信息 fdisk -l 如上图所示&#xff0c;可以看到插入的U盘/dev/sdc 2、查看磁盘块信息 lsblk 如上图所示&#xff0c;sdc即是插入的U盘&#xff0c;sdc1为磁盘块&#xff0c;挂载的时候使用sdc1 3、查看磁盘文件系统类型 parted -l 如上图所示&#xff0c;U盘是WD…

Electron + ts + vue3 + vite 项目搭建

Electron 是一个基于 Chromium 和 Node.js 的桌面应用程序开发框架&#xff0c;而 Vue3 则是一种流行的前端框架。将两者结合使用可以快速地打造出跨平台的桌面应用程序。在这种组合中&#xff0c;Electron 提供了强大的桌面应用开发能力&#xff0c;而 Vue3 则提供了易用的 UI…

4.28 白噪声功率谱密度的估计

前一节有下面结论&#xff1a; 什么仿真的白噪声波形是均匀的&#xff0c;均匀的特点是相关函数在0时刻是相关的&#xff08;自己和自己相关的&#xff09;0以外时刻都互相不相关

微信小程序——二维码推广海报

&#x1f60a;博主&#xff1a;小猫娃来啦 &#x1f60a;本文核心&#xff1a;本地图片和接口返回二维码制作一体化canvas海报 目录 创建一个画布通过canvas API绘制图像细节1 长按保存细节2 创建一个画布 在微信小程序中&#xff0c;我们使用<canvas>标签来创建一个画布…