CSS_高度自动过渡 auto height

2023-10-30

方法一 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布局
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS_高度自动过渡 auto height 的相关文章

随机推荐

  • 如何用python进行数据分析

    1 Python数据分析流程及学习路径 数据分析的流程概括起来主要是 读写 处理计算 分析建模和可视化四个部分 在不同的步骤中会用到不同的Python工具 每一步的主题也包含众多内容 根据每个部分需要用到的工具 Python数据分析的学习路
  • 02-18 周六 图解机器学习之SMV 第五章5-2

    02 18 周六 图解机器学习之SMV 第五章5 2 时间 版本 修改人 描述 2023年2月18日11 47 18 V0 1 宋全恒 新建文档 环境 程序的基本环境 是使用了jupyter 在容器中运行的 简介 本程序主要演示支持向量的获
  • sockboom 更新日志

    2023 09 04 主域名 sockboom link 订阅域名 sockboom me 邀请域名 sockboom love
  • Js课堂笔记(二)

    一 基础 1 js的语言特点 lt 1 gt 是一种脚本语言 lt 2 gt 是基于客户端 lt 3 gt 是基于对象 lt 4 gt 是在浏览器直接执行 2 1 NaN 表示不是数字 例 console log parseInt 小李 2
  • 《安卓逆向》Magisk的编译踩坑记录-安装方法-分享魔改后的Magisk过root检测方法

    为什么 1 体验下如何编译面具源码 2 魔改面具 绕过更深的root检测 1 ubuntu 虚拟机下载地址 http mirrors aliyun com ubuntu releases 20 04 github https github
  • QT从零开始作单片机上位机-串口调试助手+波形显示-实现串口模块的配置

    目录 实现串口模块的配置 1 一 先列举需要思考的问题 二 所有的问题要由简单到复杂逐一解决 实现串口模块的配置 1 完成了基本的界面设计后 我们就要着手实现功能 下来的几章我们看串口数据收发的功能怎么实现 首先我需要阐明的是 由于做嵌入式
  • Linux 忘记密码解决方法

    很多同学经常会忘记Linux系统的用户密码 忘记密码的情况该怎么办呢 一般情况下 忘记密码有两种 忘记忘记超级用户密码和普通用户密码 本文将分别介绍解决方法 解决方法如下 超级用户忘记密码 在开机时进入到这个界面按上下键 打断其自动选择系统
  • Web 前端—HTML+CSS系列

    HTML CSS 一 HTML CSS 1 1什么是HTML CSS 1 2宇宙第一编辑器VS Code 1 3Chrome浏览器 1 4 深入了解网站开发 一 HTML基本操作 1 web前端三大核心技术 2 HTML初始代码 3 HTM
  • #Vue# Vue使用print实现打印及另存为PDF功能

    步骤 1 在src utils里面加入print js 这个文件里面 也解决了 canvass echarts图表转为图片 的问题 打印类属性 方法定义 eslint disable const Print function dom opt
  • Vue之非父子组件通信

    Vue之非父子组件通信 非父子组件传值方法 1 在model中新建一个js文件 引入Vue 实例化Vue 最后暴露相关实例 引入vue import Vue from vue 创建一个空的vue实例 var bus new Vue 将实例暴
  • FOC之PI控制的理解

    PI控制器里 输入是电流差 被控制量是d q轴电压 通过适当的PI控制系数 使得可以在一定时间内将被控制量收敛到给定目标值上 存在一定允许的误差范围 输入和输出之间不存在静态数学关系 但是可以通过动态的传递函数使得输出可控 PI内部是没有物
  • 输入密码显示星号

    include
  • OPTEE的进程间通信(Inter-Process Communication, IPC)

    好久没有翻看这本书了 今天来看看 手机安全和可信应用开发指南 1 什么是IPC 进程间通信 Inter Process Communication IPC 机制是指系统中进程或线程之间的通信机制 用于实现线程与线程之间进行通信 数据交互等功
  • [填坑]QT信号与槽机制注意事项

    1 信号与槽机制与回调函数性能对比 信号与槽机制比回调函数的方式要慢 当槽函数是非虚函数时 信号与槽机制大约比回到函数机制慢10倍 但依旧能够满足大多数应用的需求 因为1秒钟可以出发200万次这样的信号 i586 500机器 1个信号绑定一
  • matlab_无约束的非线性优化

    模型 min f x s t x1 x x2 fminbnd 求定区间上单变量函数的最小值 x fval exitflag output fminbnd fun x1 x2 options fminunc 求解单变量及多变量的最小值 fmi
  • Servlet编程之会话管理

    目录 一 什么是会话管理 二 Cookie技术 2 1 Cookie技术的特点 2 2 Cookie技术的原理 2 3 Cookie技术核心API 2 4 示例 三 Session技术 3 1 Session技术的特点 3 2 Sessio
  • Visio文件编辑查看工具Visio Viewer for Mac

    Visio Viewer for Mac可以打开和查看Visio文件 vsd vdx和 vsdm文件 它具有简单易用的用户界面 可以快速加载和显示Visio文件 此外 它还支持导出文件为PDF PNG JPEG等格式 方便用户进行文件转换和
  • Java垃圾收集的困境与JVM的跨代引用解决方案

    垃圾收集 Garbage Collection GC 是Java语言中的一项重要特性 它可以自动管理内存并回收不再使用的对象 然而 垃圾收集面临着一些困境 其中之一是处理跨代引用的问题 在本文中 我们将探讨这个困境 并介绍JVM Java虚
  • web服务器原理

    目录 一 第一步 DNS域名解析 二 第二步 建立TCP连接 三 第三步 HTTP通信 四 HTTP请求报文 五 HTTP响应报文 六 第四步 关闭TCP连接 首先 举个例子 例如 在浏览器地址栏键入URL 按下回车之后会经历以下流程 1
  • CSS_高度自动过渡 auto height

    方法一 grid 布局中的 fr 单位 推荐使用 div class wrap div