父元素设置max-height,子元素高度设置百分比,子元素继承父元素高度失败

news2024/12/23 6:20:20

需求描述:

小程序里碰到的,最外层page高度 100%,里边第一层盒子高度为 max-height: 60%; 第一层盒子里有 title,content,这个 content 高度要随着第一层盒子高度走,最高为第一层盒子的高度减去 title 的高度,如果高度超出第一层盒子高度了需要做滚动处理。

写了一个 html 模拟一下高度失效场景:就是继承 max-height 的 height 无效

<!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>
        *{
            padding: 0;
            margin: 0;
            line-height: 1;
            font-size: 14px;
        }
        .out{
            width: 380px;
            height: 580px;
            background: greenyellow;
            margin: 0 auto;
            margin-top: 20px;
        }
        .box{
            max-height: 60%;
            background: orangered;
        }
        .box-top{
            height: 32px;
            line-height: 32px;
            background: purple;
        }
        .box-list{
            height: calc(100% - 32px - 24px);
            /* height: 30%; */
            overflow: auto;
            box-sizing: border-box;
            padding: 12px;
            background: rgba(0,0,0,0.35);
        }
        .box-list-item{
            margin-bottom: 8px;
            background: rgba(233,233,233,0.75);
            line-height: 1.4;
            border-radius: 6px;
            box-sizing: border-box;
            padding: 8px;
        }
        .box-list-item:last-child{
            margin-bottom: 0px;
        }
        .box-btm{
            height: 24px;
            line-height: 24px;
            background: pink;
        }
    </style>
</head>
<body>
    <div class="out">
        <div class="box">
            <div class="box-top">top</div>
            <div class="box-list">
                <div class="box-list-item">Lorem ipsum dolor sit amet consectetur adipisicing elit. Hic quo corporis minus laudantium consectetur unde vero sunt perferendis impedit. Nulla quae atque eaque expedita tempore cupiditate reiciendis odio corrupti tenetur!</div>
                <div class="box-list-item">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Suscipit illo, sint cupiditate quis quae in eius tempore aspernatur nostrum minima vero beatae id, iusto non quos nemo consequuntur veniam officia.</div>
                <div class="box-list-item">Lorem ipsum dolor sit amet consectetur adipisicing elit. In officia porro, consequuntur incidunt iusto eligendi expedita. In excepturi repellat libero quia sunt impedit vero alias cupiditate, temporibus, quod itaque mollitia?</div>
                <div class="box-list-item">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Fugit sit quis, cumque numquam illo, delectus dolorum illum asperiores dolorem tenetur, facilis doloremque? Doloremque, ipsa ab. Veniam laudantium minima doloremque molestias!</div>
                <div class="box-list-item">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam quam pariatur a est ratione, deserunt voluptatum, rem obcaecati, molestias quas velit autem fuga veritatis? Quae quibusdam cumque impedit minima non.</div>
                <div class="box-list-item">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Porro cumque aliquid delectus, aut voluptatum maxime perferendis nemo adipisci reprehenderit accusantium nisi doloribus iste, natus iure sit sint officiis debitis amet?</div>
            </div>
            <div class="box-btm">bottom</div>
        </div>
    </div>
</body>
</html>

在这里插入图片描述
可以看到这个高度是没继承下来的,设置了百分比或者 calc 百分比计算也没用。

解决方案

利用 flex ,只需要加三行代码即可,甚至如果布局再简单一点,只需要加一行代码就可以

.box{
 max-height: 60%;
    background: orangered;
    
    /* 这里 start */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    /* 这里 end*/

}

在这里插入图片描述

完整代码

<!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>
        *{
            padding: 0;
            margin: 0;
            line-height: 1;
            font-size: 14px;
        }
        .out{
            width: 380px;
            height: 580px;
            background: greenyellow;
            margin: 0 auto;
            margin-top: 20px;
        }
        .box{
            max-height: 60%;
            background: orangered;
            
            /* 这里 start */
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            /* 这里 end*/

        }
        .box-top{
            height: 32px;
            line-height: 32px;
            background: purple;
        }
        .box-list{
            height: calc(100% - 32px - 24px);
            /* height: 30%; */
            overflow: auto;
            box-sizing: border-box;
            padding: 12px;
            background: rgba(0,0,0,0.35);
        }
        .box-list-item{
            margin-bottom: 8px;
            background: rgba(233,233,233,0.75);
            line-height: 1.4;
            border-radius: 6px;
            box-sizing: border-box;
            padding: 8px;
        }
        .box-list-item:last-child{
            margin-bottom: 0px;
        }
        .box-btm{
            height: 24px;
            line-height: 24px;
            background: pink;
        }
    </style>
</head>
<body>
    <div class="out">
        <div class="box">
            <div class="box-top">top</div>
            <div class="box-list">
                <div class="box-list-item">Lorem ipsum dolor sit amet consectetur adipisicing elit. Hic quo corporis minus laudantium consectetur unde vero sunt perferendis impedit. Nulla quae atque eaque expedita tempore cupiditate reiciendis odio corrupti tenetur!</div>
                <div class="box-list-item">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Suscipit illo, sint cupiditate quis quae in eius tempore aspernatur nostrum minima vero beatae id, iusto non quos nemo consequuntur veniam officia.</div>
                <div class="box-list-item">Lorem ipsum dolor sit amet consectetur adipisicing elit. In officia porro, consequuntur incidunt iusto eligendi expedita. In excepturi repellat libero quia sunt impedit vero alias cupiditate, temporibus, quod itaque mollitia?</div>
                <div class="box-list-item">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Fugit sit quis, cumque numquam illo, delectus dolorum illum asperiores dolorem tenetur, facilis doloremque? Doloremque, ipsa ab. Veniam laudantium minima doloremque molestias!</div>
                <div class="box-list-item">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam quam pariatur a est ratione, deserunt voluptatum, rem obcaecati, molestias quas velit autem fuga veritatis? Quae quibusdam cumque impedit minima non.</div>
                <div class="box-list-item">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Porro cumque aliquid delectus, aut voluptatum maxime perferendis nemo adipisci reprehenderit accusantium nisi doloribus iste, natus iure sit sint officiis debitis amet?</div>
            </div>
            <div class="box-btm">bottom</div>
        </div>
    </div>
</body>
</html>

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

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

相关文章

金属元素螯合剂:1023889-20-4,(S)-DOTAGA-(COOt-Bu)4,水溶性好、稳定性好

●中文名&#xff1a;(S)-DOTAGA-四叔丁酯 ●英文名&#xff1a;(S)-DOTAGA-(COOt-Bu)4 ●外观以及性质&#xff1a; (S)-DOTAGA-(COOt-Bu)4中DOTA是一种十二元四氮杂大环配体的金属元素螯合剂&#xff0c;该化合物还可作为一种水溶性好、稳定性好的离子液体的配体。此外&…

it个人工作总结范文10篇

it个人工作总结1 20-年这一年中&#xff0c;在公司领导的正确领导及对公司信息化建设高度重视下&#xff0c;经过IT部门全员长期努力&#xff0c;公司信息化工作取得了明显的成效。现将20-年IT部工作总结如下&#xff1a; 第一部分&#xff1a;取得的成绩 (一)建立华凯尔协同工…

光伏行业快速发展与分布式光伏云平台的设计

安科瑞虞佳豪 ​近年来&#xff0c;我国光伏产业实现快速发展&#xff0c;成为我国取得全球竞争优势、实现端到端安全可控、有望率先成为高质量发展典范的新兴产业之一。阳光电源股份有限公司董事长曹仁贤表示&#xff0c;目前我国光伏产业已形成全球最完整的产业链&#xff0c…

民用飞机飞控系统传感器故障诊断研究综述

导语 飞控系统中的各类传感器对飞机稳定与操纵起着至关重要的影响&#xff0c;是飞机的重要安全机载设备之一。传统冗余方法具有“安全性高&#xff0c;经济性低”的特点&#xff0c;通过多余度设计来提升系统的安全性给飞机的重量与结构设计、系统综合集成、维修与检测成本都…

Axure教程—中继器分页

本文是关于Axure中继器的运用操作&#xff0c;详细讲解利用Axure中继器实分页的操作流程&#xff0c;比较基础&#xff0c;供初学者参考学习。 效果 预览地址&#xff1a;https://hd42dm.axshare.com 功能 1、点击“数字”显示相应页面的内容 2、点击“首页”显示第一页内容 …

测试找工作,如今真的一年比一年难,怎样才能打破困境?

坐标深圳&#xff0c;2020年6月毕业开启了社畜的模式&#xff0c;深圳某大型互联网码农集散基地&#xff08;非大厂&#xff09;学历背景&#xff1a;二本。 第一份工作在深圳的一个60人左右规模的小公司做软件测试。年初离职后&#xff0c;最近刚刚跳槽成功。 做测试是从20年…

nginx页面优化与防盗链

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、nginx页面优化1.版本号1.1 查看版本号1.2 修改版本号1.2.1 修改配置文件1.2.2 修改源码文件&#xff0c;重新编译安装 2.nginx的日志分割3.nginx的页面压缩3.1 …

宝塔面板SSL证书配置方法(Nginx及Apache环境)

宝塔面板是一款服务器管理软件&#xff0c;可以通过网络轻松管理服务器&#xff0c;提高运维效率&#xff0c;让用户更容易使用服务器&#xff0c;它可以支持Linux操作系统、Windows操作系统&#xff0c;是国内非常受欢迎的主机控制面板&#xff0c;可以通过交互界面完成服务器…

《深度学习入门:基于python的理论与实现》chap2感知机

文章目录 2.1 什么是感知机2.2 简单逻辑电路 &2.3 感知机的实现引入偏置与门 And gate与非门(NAND gate)或门 OR gate 2.4 感知机的局限性(单层感知机无法分离非线性空间)2.4.1 异或门2.4.2 线性和非线性 2.5 多层感知机(multi-layered perception)2.5.1 已有门电路的组合2…

Git 工具原理及使用 -- 基本使用

Git 工具原理及使用 – 基本使用 文章目录 Git 工具原理及使用 -- 基本使用1.创建本地仓库2.配置本地仓库3.认识工作区、暂存区、版本库4.添加文件 -- 场景一5.查看.git文件6.添加文件 -- 场景二7.修改文件8.版本回退9.撤销修改**情况一&#xff1a;对于工作区的代码&#xff0…

【哈士奇赠书活动 - 28期】- 〖产品经理就业实战〗

文章目录 ⭐️ 赠书 - 《产品经理就业实战》⭐️ 内容简介⭐️ 作者简介⭐️ 编辑推荐⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书 - 《产品经理就业实战》 ⭐️ 内容简介 本书专门为想要入行从事产品经理相关工作的零基础就业人员而编写&#xff0c;涵盖了在产品准备阶段、产品开发阶…

TipDM数据挖掘建模平台产品功能特点

TipDM数据挖掘建模平台是可视化、一站式、高性能的数据挖掘与人工智能建模服务平台&#xff0c;致力于为使用者打通从数据接入、数据预处理、模型开发训练、模型评估比较、模型应用部署到模型任务调度的全链路。平台内置丰富的机器学习、深度学习、人工智能算法&#xff0c;可覆…

桥接模式(Bridge)

定义 桥接是一种结构型设计模式&#xff0c;可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构&#xff0c;从而能在开发时分别使用。 前言 1. 问题 假如你有一个几何形状&#xff08;Shape&#xff09;类&#xff0c; 从它能扩展出两个子类&#xff1a…

2023最强免费的AI生成图像工具其1

Midjourney虽然很强&#xff0c;但是要钱.Stable Diffusion也很强&#xff0c;但是对于小白来说部署起来也是很麻烦。我们整理了一些已经上线了的&#xff0c;可以直接访问和使用的AI生成图像的工具网站集合。 收录到 2023 最强免费AI生成图像工具集合系列https://www.webhub1…

STM32速成笔记—RTC

文章目录 一、RTC简介二、STM32的RTC2.1 主要特性2.2 RTC框图介绍 三、访问后备区域步骤四、RTC配置步骤五、RTC程序配置5.1 RTC结构体定义5.2 RTC初始化函数5.3 设置年月日&#xff0c;时分秒5.4 判断闰年函数5.5 获取当前年月日&#xff0c;时分秒5.6 获取星期几5.7 中断服务…

【②MySQL 】:测试数据准备、SQL语句规范与基本操作

前言 欢迎来到小K的MySQL专栏&#xff0c;本节将为大家准备MySQL测试数据、以及带来SQL语句规范、数据库的基本操作的详细讲解~✨文末送书&#xff0c;小K赠书活动第二期 目录 前言一、准备测试数据二、SQL语句规范三、数据库的基本操作四、总结&#xff1a;文末赠书 一、准备测…

智能应急疏散系统在大型建筑中的的功能与应用

安科瑞 华楠 摘 要&#xff1a;随着经济的不断发展和城市化进程的推进,城市建筑逐渐发展为高层化、大型化和功能综合化,大空间的建筑物增多。为了实现以人为本,坚持可持续发展理念,保证城市建设系统的正常运行,安全防灾系统在建筑中必不可少,而火患是一项重要的防范内容,要不断…

使用RabbitMQ死信队列关闭未支付的订单

一、什么是RabbitMQ死信队列 RabbitMQ死信队列&#xff08;Dead-Letter Exchange&#xff0c;简称DLX&#xff09;是一种特殊类型的交换机&#xff0c;用于处理在队列中无法被消费的消息。当消息无法被消费时&#xff0c;它会被转发到死信队列中&#xff0c;以便进一步处理。 …

7-WebApis-1

Web APIs - 1 掌握DOM属性操作&#xff0c;完成元素内容设置&#xff0c;元素属性设置&#xff0c;控制元素样式 DOM简介获取DOM元素操作元素内容操作元素属性定时器-间隔函数综合案例 描述属性/方法效果获取DOM对象document.querySelector()获取指定的第一个元素document.que…

nuxt 设置i18n后多语言文件不会动态更新

nuxt 设置i18n后多语言文件不会动态更新 昨天遇到的一个问题&#xff0c;然后研究了一整天&#xff0c;今天才得到解决 nuxt 设置i18n多语言时多语言文件不会动态更新 我的原始代码如下&#xff1a; {modules: [nuxtjs/i18n,],i18n: {locales: [{code: en,iso: en-US,name:…