如何解决 CSS Flex 布局中的溢出问题?

ID:13216 / 打印

为了解决 css flex 布局中的溢出问题,我们将解决以下两个示例 -

  • 修复溢出 - 将外部 div 的高度设置为始终等于特定内部 div
  • 嵌套弹性容器时避免溢出

将外部div的高度始终设置为与特定内部div相等,并修复溢出问题

示例

我们正在使用Flex修复内部和外部div之间的溢出问题。让我们看一个例子−

<!DOCTYPE html> <html> <head>    <style>    .outer {       display: flex;       border: 1px solid blue;       padding: 5px;       box-sizing: border-box;    }    .outer>div {       flex: 1;       margin: 5px;       border: 1px solid;       box-sizing: border-box;    }    div.inner {       border-color:orange;    }    .inner-in {       position: relative;       overflow: auto;    }    .inner-in>div {       position: absolute;       top: 0;       right: 0;       left: 0;       bottom: 0;    }             </style> </head> <body>    <h1>Adjusting Inner and Outer Div</h1>    <div class="outer">       <div class="inner">In faucibus dictum mauris quis molestie. Nulla vestibulum ipsum eget pulvinar euismod. Fusce pulvinar volutpat scelerisque. Ut pretium commodo faucibus. </div>       <div class="inner-in">          <div>Vestibulum et mauris eleifend, ornare augue at, mattis lacus. Mauris aliquet viverra aliquam. Nunc ac nibh tempus, interdum libero in, pellentesque nisi.</div>       </div>       <div class="inner-in">          <div>eget bibendum risus commodo. Nullam tristique nibh sed iaculis vulputate.           Vivamus ac tincidu. Pellentesque fringilla pulvinar orci, non dapibus tortor aliquam           vel. Aenean eget quam vel nisi malesuada auctor nec quis nunc. Morbi eu tempor nunc</div>       </div>    </div>    <div class="outer">       <div class="inner">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec        dignissim ipsum orci, io vestibulum, eget bibendum risus commodo. Nullam tristique nibh        sed iaculis vulputate</div>       <div class="inner-in">          <div>Vestibulum et mauris eleifend, ornare augue at, mattis lacus. Mauris aliquet           viverra aliquam. Nunc ac nibh tempus, interdum libero in, pellentesque nisi. Nullam           tristique nibh sed iaculis vulputate. Vivamus ac tincidu</div>       </div>       <div class="inner-in">          <div>eget bibendum risus commodo. Nullam tristique nibh sed iaculis vulputate. Vivamus ac tincidu</div>       </div>    </div>    <div class="outer">       <div class="inner">In faucibus dictum mauris quis molestie. Nulla vestibulum ipsum eget        pulvinar euismod. Fusce pulvinar volutpat scelerisque. Ut pretium commodo faucibus.        vestibulum, eget bibendum risus commodo. Nullam tristique nibh sed iaculis vulputate ,        eget bibendum risus commodo. Nullam tristique nibh sed iaculis vulputate</div>       <div class="inner-in">          <div>Donec eget libero est. Vestibulum libero tellus, aliquam non mattis quis,           pellentesque eu quam. Duis laoreet scelerisque risus, elementum porttitor dui           tincidunt quis. Ut volutpat ligula finibus a. Maecenas ut pharetra ante. Nunc           volutpat est eu odio vestibulum, eget bibendum risus commodo. Nullam tristique nibh           sed iaculis vulputate. Vivamus ac tincidu</div>       </div>       <div class="inner-in">          <div>eget bibendum risus commodo. Nullam tristique nibh sed iaculis vulputate. Vivamus ac tincidu</div>       </div>    </div> </body> </html> 

输出

如何解决 CSS Flex 布局中的溢出问题?

在嵌套弹性容器时避免溢出问题

我们的父 div ParentBox 中有两个 div -

<div class='parentBox'>    <div class='childBox'>       <div class='babyChildBox'>Parent's Child</div>       <div class='babyChildBox'>Parent's Child</div>    </div>    <! - - -    !--> </div> 

父容器的样式。我们使用 CSS Flex 速记属性 -

.parentBox {    display: flex;    flex: 1 0 100%;    background-color:yellow;    border: 3px solid skyblue; } 

对于子元素,即childBox,我们再次使用了缩写属性来设置弹性项的弹性长度 -

立即学习“前端免费学习笔记(深入)”;

.childBox {    flex: 1 1 50%    background-color: green;    color: white;    border: 1px solid blue; } 

上面 .childBox 中的嵌套子项是用 Flex 设置的。这个和上面嵌套了 Flex 容器 -

.babyChildBox {    flex: 1 1 50%;    background-color: orange; } 

示例

现在让我们看看正确嵌套弹性容器并尝试避免溢出问题的完整示例 -

<!DOCTYPE html> <html> <head>    <style>     .parentBox {       display: flex;       flex: 1 0 100%;       background-color:yellow;       border: 3px solid skyblue;    }    .childBox {       flex: 1 1 50%       background-color: green;       color: white;       border: 1px solid blue;    }    .babyChildBox {       flex: 1 1 50%;       background-color: orange;    }    </style> </head> <body>    <h1>Implementing Flex</h1>    <div class='parentBox'>       <div class='childBox'>          <div class='babyChildBox'>Parent's Child</div>          <div class='babyChildBox'>Parent's Child</div>       </div>       <div class='childBox'>          <div class='babyChildBox'>Parent's Child</div>          <div class='babyChildBox'>Parent's Child</div>       </div>    </div> </body> </html> 

输出

如何解决 CSS Flex 布局中的溢出问题?
上一篇: CSS3 rgba 颜色属性
下一篇: CSS flex-direction属性行值的作用

作者:admin @ 24资源网   2024-10-18

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。