style.css
setup.css
index.html
section { display: flex; } section:nth-child(1), section:nth-child(3) { flex-wrap: nowrap; /* Default. */ } section:nth-child(2), section:nth-child(4) { flex-wrap: wrap; } section:nth-child(3), section:nth-child(4) { flex-direction: column; } section:nth-child(4) { max-height: 120px; /* Force the wrap. */ }
body { font-family: sans-serif; padding: 20px; } div { background-color: tomato; border-bottom: 2px solid firebrick; border-right: 2px solid firebrick; padding: 5px; } section { background-color: gold; min-height: 120px; } section:not(:first-child) { margin-top: 20px; }
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="/assets/styles/reset.css" rel="stylesheet"> <link href="setup.css" rel="stylesheet"> <link href="style.css" rel="stylesheet"> </head> <body> <section> <div> <p>Item 1</p> </div> <div> <p>Item 2</p> </div> <div> <p>Item 3 with more text</p> </div> <div> <p>Item 4 longer</p> </div> <div> <p>Item 5 too</p> </div> <div> <p>Item 6</p> </div> </section> <section> <div> <p>Item 1</p> </div> <div> <p>Item 2</p> </div> <div> <p>Item 3 with more text</p> </div> <div> <p>Item 4 longer</p> </div> <div> <p>Item 5 too</p> </div> <div> <p>Item 6</p> </div> </section> <section> <div> <p>Item 1</p> </div> <div> <p>Item 2</p> </div> <div> <p>Item 3 with more text</p> </div> <div> <p>Item 4 longer</p> </div> <div> <p>Item 5 too</p> </div> <div> <p>Item 6</p> </div> </section> <section> <div> <p>Item 1</p> </div> <div> <p>Item 2</p> </div> <div> <p>Item 3 with more text</p> </div> <div> <p>Item 4 longer</p> </div> <div> <p>Item 5 too</p> </div> <div> <p>Item 6</p> </div> </section> </body> </html>