To solve the overflow issue in CSS Flex layout, we will solve the following two examples -
We are using Flex to fix an overflow issue between inner and outer divs. Let’s see an example −
<!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>
There are two divs in our parent div ParentBox -
<div class='parentBox'> <div class='childBox'> <div class='babyChildBox'>Parent's Child</div> <div class='babyChildBox'>Parent's Child</div> </div> <! - - - !--> </div>
The style of the parent container. We use CSS Flex shorthand properties -
.parentBox { display: flex; flex: 1 0 100%; background-color:yellow; border: 3px solid skyblue; }
For the child element, that is, childBox, we again use the abbreviation attribute to set the elastic length of the elastic item -
.childBox { flex: 1 1 50% background-color: green; color: white; border: 1px solid blue; }
The nested children in the .childBox above are set using Flex. This and above have nested Flex containers -
.babyChildBox { flex: 1 1 50%; background-color: orange; }
Now let's see a complete example of nesting flex containers correctly and trying to avoid overflow issues -
<!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>
The above is the detailed content of How to solve overflow issue in CSS Flex layout?. For more information, please follow other related articles on the PHP Chinese website!