首页 > 其他分享 >flex 嵌套下 overflow: hidden 失效

flex 嵌套下 overflow: hidden 失效

时间:2023-05-11 18:25:55浏览次数:29  
标签:flex center 布局 失效 overflow hidden

HTML结构

<div class="container">
    <div class="header">header</div>
    <div class="main">
        <div class="left">left</div>
        <div class="center">
            <div class="item">flex 布局下 overflow: hidden 失效1</div>
            <div class="item">flex 布局下 overflow: hidden 失效2</div>
            <div class="item">flex 布局下 overflow: hidden 失效3</div>
            <div class="item">flex 布局下 overflow: hidden 失效4</div>
            <div class="item">flex 布局下 overflow: hidden 失效5</div>
            <div class="item">flex 布局下 overflow: hidden 失效6</div>
            <div class="item">flex 布局下 overflow: hidden 失效7</div>
            <div class="item">flex 布局下 overflow: hidden 失效8</div>
            <div class="item">flex 布局下 overflow: hidden 失效9</div>
        </div>
        <div class="right">right</div>
    </div>
    <div class="footer">footer</div>
</div>

CSS代码

.container{
    display: flex;
    flex-direction: column;
    width: 100vw;
    height: 100vh;
    color: #333;
    background-color: #f3f3f3;
    overflow: hidden;

    .header,
    .footer{
        height: 80px;
        font-size: 24px;
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: #dee2e6;
    }

    .main{
        flex: 1;
        display: flex;

        .left,
        .right{
            width: 30%;
            font-size: 24px;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: #adb5bd;
        }

        .center{
            flex: 1;
            overflow: hidden;

            .item{
                height: 40px;
                line-height: 40px;
                font-size: 20px;
            }
        }
    }
}

效果

 缩小了浏览器,可以看到 footer 被挤没了,header 也变小了,现在的 overflow 其实是 container 的,并不是 center 的

解决方案:

在 center 下再包一层,然后将 center 设置 position: relative,并将添加的层设置 position: absolute;width: 100%;height: 100%;使得新添加的层撑满 center

<div class="center">
    <div class="content">
        <div class="item">flex 布局下 overflow: hidden 失效1</div>
        <div class="item">flex 布局下 overflow: hidden 失效2</div>
        <div class="item">flex 布局下 overflow: hidden 失效3</div>
        <div class="item">flex 布局下 overflow: hidden 失效4</div>
        <div class="item">flex 布局下 overflow: hidden 失效5</div>
        <div class="item">flex 布局下 overflow: hidden 失效6</div>
        <div class="item">flex 布局下 overflow: hidden 失效7</div>
        <div class="item">flex 布局下 overflow: hidden 失效8</div>
        <div class="item">flex 布局下 overflow: hidden 失效9</div>
    </div>
</div>
.center{
    flex: 1;
    overflow: hidden;
    position: relative;

    .content{
        position: absolute;
        width: 100%;
        height: 100%;
        
        .item{
            height: 40px;
            line-height: 40px;
            font-size: 20px;
        }
    }
}

效果

 

标签:flex,center,布局,失效,overflow,hidden
From: https://www.cnblogs.com/laoq112/p/17391857.html

相关文章

  • css3 flex弹性布局详解
    一、flexbox弹性盒子2009年,W3C提出了一种新的方案----Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。二、基本概念Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性......
  • vue学习 第九天(1) 元素的显示与隐藏 display (不保留位置) / visibility (保留位置) /
    元素的显示与隐藏本质:让一个元素在页面中隐藏或者显示出来。1、display属性,隐藏后不保留位置1)display::none;隐藏对象2)display:block;除了转换为块级元素之外,同时还有显示元素的意思。display隐藏元素后,不再占有原来的位置。 2......
  • 2022CVPR_Toward Fast, Flexible, and Robust Low-Light Image Enhancement(SCI_main)
    1.motivation(1)低光增强不能处理复杂的场景(2)需要耗费大量的计算2.contribution(1)节省计算(2)发明了自监督的SCI模块(SCI的核心是引入额外的网络模块(自校准照明)来辅助训练,而不是用于测试)大佬链接:(11条消息)低照度增强--论文阅读【《TowardFast,Flexible,andRobustLow-Light......
  • 第六节 Flex布局
    day06-Flex布局目标:熟练使用Flex完成结构化布局01-标准流标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。02-浮动基本使用作用:让块元素水平排列。属性名:float属性值left:左对齐right:右对齐<style>/*特点:顶对......
  • 基于jQuery的FlexiGrid的插件使用和改造
    已不推荐下载,如要下载去这个连接下载最新的http://gundumw100.iteye.com/admin/blogs/545610上面的2个链接是我参考的例子虽然Flexigrid已然算是优秀,但是问题还是有?比如:1:不支持在列首添加checkbox列2:如何给行附加事件(如右键快显菜单或双击)或者在最后列添加操作列(在列的定......
  • 父元素设置相对定位和overflow:hidden会清除子元素绝对定位的脱离文档流效果
     当父元素同时设置相对定位和overflow:hidden时会使得子元素的绝对定位的脱离文档流效果失效。原因:绝对定位会根据最近的设置了绝对定位或相对定位的祖先元素进行定位,绝对定位会使得元素脱离文档流,但这里overflow:hidden会消除脱离文档流的效果,导致了son在设置了绝对定位后依然......
  • flex布局
    flex布局在CSS3中flex可以非常便捷的可以帮助我们实现对页面的布局。传统的页面布局,基于div+float来实现。flex可以快速实现页面的布局(很方便)。关于flex布局你必须要了解的有一下几点:<divclass="menu"样式><divclass="item"样式>112</div><divclass="item">......
  • 什么是弹性(display: flex)布局 ?
    display:flex意思是弹性布局,它能够扩展和收缩flex容器内的元素,以最大限度地填充可用空间。Flex是FlexibleBox的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。.box{display:flex;}注意,设为Flex布局以后,子元素的flo......
  • 阮一峰 Flex 布局教程:语法篇
    网页布局(layout)是CSS的一个重点应用。布局的传统解决方案,基于盒状模型,依赖 display 属性+ position属性+ float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。2009年,W3C提出了一种新的方案----Flex布局,可以简便、完整、响应式地实现各种页面布局。......
  • flex 简介
    RIA技术:学习Flex必须要了解RIA,RIA:RichInternetApplication,富客户端英特网应用程序,关键是富字。传统的HTML页面元素非常有限,开发人员在页面刷新和相应速度都会受到很大的困扰。随着3G的普及,网络带宽将得到非常大的改善,富互联网应用的时代也越来越近了,人们......