css实现不确定内容的高度过渡

实现效果:鼠标悬浮按钮,高度过渡出现如图所示文本框
在这里插入图片描述

在这里插入图片描述
代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.button {width: 70px;line-height: 40px;height: 40px;margin: 10px auto;border: 2px solid gold;background-color: rgb(87, 202, 11);border-radius: 5px;text-align: center;color: #fff;font-weight: bolder;display: block;cursor: pointer;box-sizing: border-box;position: relative;}.content {width: 400px;margin: 0px auto;line-height: 30px;background-color: cornflowerblue;color: #fff;font-size: 18px;font-weight: bolder;margin-top: 10px;border-radius: 25px;text-align: center;transition: 1s;height: 0px;overflow: hidden;/* 差值算法针对一些尺寸的关键字有作用,浏览器内部会将关键字计算出具体的数值,然后去实现过渡 *//* interpolate-size: allow-keywords; *//* 差值算法只针对数值有作用,这个是默认值,所以过渡效果也只针对数值才能产生效果 *//* interpolate-size: numeric-only; */}.content.active {/* 根据尺寸关键字算出实际尺寸,size则为实际尺寸,还可以在size上面操作,例如calc-size(auto, size + 10px) */height: calc-size(auto, size);}</style>
</head>
<body><div class="button">展开详情<div style="position: absolute;top: 10px; left: 10px;">111</div></div><div class="content"><div></div>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Itaque, culpa unde est animi consequatur iste eum eius sunt odit officia laboriosam expedita officiis mollitia doloribus possimus recusandae corrupti. Tempora, distinctio!Lorem ipsum dolor sit, amet consectetur adipisicing elit. Saepe voluptatem recusandae sapiente suscipit voluptate repudiandae vero in! Saepe, libero veritatis similique blanditiis explicabo voluptatum fuga dignissimos ratione quas! Molestias, itaque.</div><script>var button = document.querySelector('.button');const content = document.querySelector('.content');// button.onmouseenter = () => {//     // 这两行代码完全只是为了算出内容展开后,元素的高度,好让高度从0到实际高度来实现过渡效果//     content.style.height = 'auto';//     const { height } = content.getBoundingClientRect();//     content.style.height = '0px';//     content.clientHeight; // 强制回流//     content.style.height = `${height}px`;// }// button.onmouseleave = () => {//     content.style.height = '0px';// }button.onmouseenter = () => {content.classList.add('active');}button.onmouseleave = () => {content.classList.remove('active');}</script>
</body>
</html>
  • 思路一:height: 0;-》height: auto; 过渡只针对数值属性有效果,这种过渡效果无法出现。

  • 思路二:max-height: 0;-》max-height: 1000px;这种有两个缺点,一个是不能完全保证内容高度最后不超过设置的1000px;第二就是过渡效果是从0-》1000,可能假设需要1s,但实际内容高度是500px的话,那么肉眼看起来的过渡时间只有0.5s;移出按钮时,从1000-》500这个过渡过程肉眼是不可见的,假设需要耗费0.5s,那么肉眼感受到的效果就是页面卡了0.5s才开始将内容收起来(文本框消失的过程)。总结就是移出效果会受到影响。

  • 思路三:js设置height:auto算出内容实际高度,后立马设置高度为0,然后强制回流渲染,最后设置内容为实际高度,从而实现过渡。
    在这里插入图片描述

  • 思路四:使用interpolate-size,兼容性不好。

在这里插入图片描述
在这里插入图片描述

  • 思路五:calc-size(auto, size),兼容性不好
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

计算机视觉与深度学习 | matlab实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据)

以下是一个基于MATLAB的ARIMA-WOA-CNN-LSTM时间序列预测框架。由于完整代码较长,此处提供核心模块和实现思路,完整源码和数据可通过文末方式获取。 1. 数据准备(示例数据) 使用MATLAB内置的航空乘客数据集: % 加载数据 data = readtable(airline-passengers.csv); data …

在 Excel 中使用东方仙盟软件————仙盟创梦IDE

安装插件 用仙盟创梦编写插件代码 源码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ExcelDna.Integration;namespace 东方仙盟.仙盟创梦IDE_招标系统 {public static class 仙盟创梦_招标专…

Sql刷题日志(day9)

一、笔试 1、limit offset&#xff1a;分页查询 SELECT column1, column2, ... FROM table_name LIMIT number_of_rows OFFSET start_row; --跳过前 start_row 行&#xff0c;返回接下来的 number_of_rows 行。 2、lag、lead&#xff1a;查询前后行数据 --lag函数用于访问当…

C++面试3——const关键字的核心概念、典型场景和易错陷阱

const关键字的核心概念、典型场景和易错陷阱 一、const本质&#xff1a;类型系统的守护者 1. 与#define的本质差异 维度#defineconst编译阶段预处理替换编译器类型检查作用域无作用域&#xff08;全局污染&#xff09;遵循块作用域调试可见性符号消失保留符号信息类型安全无类…

16-看门狗和RTC

一、独立看门狗 1、独立看门狗概述 在由单片机构成的微型计算机系统中&#xff0c;由于单片机的工作常常会受到来自外界电磁场的干扰&#xff0c;造成程序的跑飞&#xff08;不按照正常程序进行运行&#xff0c;如程序重启&#xff0c;但是如果我们填加看门狗的技术&#xff0…

w~自动驾驶~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/13269720 #FastOcc 推理更快、部署友好Occ算法来啦&#xff01; 在自动驾驶系统当中&#xff0c;感知任务是整个自驾系统中至关重要的组成部分。感知任务的主要目标是使自动驾驶车辆能够理解和感知周围的环境元素&…

怎么打包发布到npm?——从零到一的详细指南

怎么打包发布到npm&#xff1f;——从零到一的详细指南 目录 怎么打包发布到npm&#xff1f;——从零到一的详细指南一、准备工作1. 注册 npm 账号2. 安装 Node.js 和 npm 二、初始化项目三、编写你的代码四、配置 package.json五、打包你的项目六、登录 npm七、发布到 npm八、…

【C++ - 仿mudou库one thread one loop式高并发服务器实现】

文章目录 项目介绍项目模块和服务器主要设计模式项目主要流程前置知识1.bind函数2.定时器任务TimerTask和时间轮思想TimerWheel3.正则表达式4.通用型容器Any类 服务器设计模式1&#xff09;单Reactor单线程模式2&#xff09;单Reactor多线程模式3&#xff09;多Reactor多线程模…

RISC-V 开发板 MUSE Pi Pro USB 测试(3.0 U盘,2.0 UVC摄像头)

视频讲解&#xff1a; RISC-V 开发板 MUSE Pi Pro USB 测试&#xff08;3.0 U盘&#xff0c;2.0 UVC摄像头&#xff09; 总共开发板有4个USB的A口&#xff0c;1个USB的TypeC口&#xff0c;我们插上两个USB3.0的U盘和一个USB2.0的UVC摄像头来进行测试 lsusb -tv 可以看到有3个US…

docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)

文章目录 前言引入docker 简介docker的应用场景docker的虚拟化技术VS虚拟机docker的优点docker架构Docker仓库Docker镜像linux操作系统的大致组成部分 Docker容器 docker安装与启动校验版本移除旧的版本安装依赖工具设置软件源安装docker验证 配置镜像加速器docker服务相关命令…

记录一次服务器卡顿

一、服务器卡顿现象 服务用了一段时间后&#xff0c;突然很卡&#xff0c;发现在服务器上新建excel也很卡&#xff0c;发现服务器中病毒了&#xff0c;然后重新安装了操作系统。重新安装服务环境时&#xff0c;发现同时安装pdf、tomcat时都很慢&#xff0c;只能一个安装好了&am…

基于 Reactor 的 Java 高性能异步编程:响应式流与背压详解

本文将围绕 Reactor 框架&#xff0c;深入剖析响应式流的核心机制&#xff0c;重点讲解背压&#xff08;Backpressure&#xff09;的实现原理与实际应用。通过理论结合实践&#xff0c;希望帮助你真正掌握 Java 世界的响应式异步编程。 一、响应式编程与 Reactor 简介 1.1 什么…

知识蒸馏实战:用PyTorch和预训练模型提升小模型性能

在深度学习的浪潮中&#xff0c;我们常常追求更大、更深、更复杂的模型以达到最先进的性能。然而&#xff0c;这些“庞然大物”般的模型往往伴随着高昂的计算成本和缓慢的推理速度&#xff0c;使得它们难以部署在资源受限的环境中&#xff0c;如移动设备或边缘计算平台。知识蒸…

python:mysql全局大览(保姆级教程)

本文目录&#xff1a; 一、关于数据库**二、sql语言分类**三、数据库增删改查操作**四、库中表增删改查操作**五、表中记录插入**六、表约束**七、单表查询**八、多表查询**&#xff08;一&#xff09;外键约束**&#xff08;二&#xff09;连结查询**1.交叉连接&#xff08;笛…

Android framework 问题记录

一、休眠唤醒&#xff0c;很快熄屏 1.1 问题描述 机器休眠唤醒后&#xff0c;没有按照约定的熄屏timeout 进行熄屏&#xff0c;很快就熄屏&#xff08;约2s~3s左右&#xff09; 1.2 原因分析&#xff1a; 抓取相关log&#xff0c;打印休眠背光 相关调用栈 //具体打印调用栈…

怎么利用JS根据坐标判断构成单个多边形是否合法

怎么利用JS根据坐标判断构成单个多边形是否合法 引言 在GIS(地理信息系统)、游戏开发、计算机图形学等领域,判断一组坐标点能否构成合法的简单多边形(Simple Polygon)是一个常见需求。合法多边形需要满足几何学上的基本规则,本文将详细介绍如何使用JavaScript实现这一判…

sqlite的拼接字段的方法(sqlite没有convert函数)

我在sqlserver 操作方式&#xff1a; /// <summary>///获取当前门店工资列表/// </summary>/// <param name"wheres">其他条件</param>/// <param name"ThisMendian">当前门店</param>/// <param name"IsNotU…

构建高效移动端网页调试流程:以 WebDebugX 为核心的工具、技巧与实战经验

现代前端开发早已不仅仅局限于桌面浏览器。随着 Hybrid 应用、小程序、移动 Web 的广泛应用&#xff0c;开发者日常面临的一个关键挑战是&#xff1a;如何在移动设备上快速定位并解决问题&#xff1f; 这不再是“打开 DevTools 查查 Console”的问题&#xff0c;而是一个关于设…

新兴技术与安全挑战

7.1 云原生安全(K8s安全、Serverless防护) 核心风险与攻击面 Kubernetes配置错误: 风险:默认开放Dashboard未授权访问(如kubectl proxy未鉴权)。防御:启用RBAC,限制ServiceAccount权限。Serverless函数注入: 漏洞代码(AWS Lambda):def lambda_handler(event, cont…

《算法笔记》11.7小节——动态规划专题->背包问题 问题 C: 货币系统

题目描述 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。 [In their own rebellious way],&#xff0c;他们对货币的数值感到好奇。 传统地&#xff0c;一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。 母牛想知道有多少种不同的方法来用货币…