I can't understand why aren't the card
s shrinking post 300px. Based on my understanding of flexbox, if there is no available space, flex-shrink
comes into play.What's interesting to me is that when i use flex-basis
instead of width
, it works perfectly fine and it shrinks normally; But when it is set to auto
which if im not mistaken falls back to width
, it just overflows the container width and i can't understand why there is no shrinking.I know that i can fix the overflow by using flex-wrap: wrap
, but the problem is that i can't understand the behaviour.
* { margin: 0; padding: 0; box-sizing: border-box;}body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; margin: 0; min-height: 100vh; display: flex; flex-direction: column;}.header { height: 72px; background: darkmagenta; color: white; font-size: 32px; font-weight: 900; display: flex; align-items: center; padding-left: 16px;}.footer { height: 72px; background: #eee; color: darkmagenta;}.sidebar { width: 300px; background: royalblue; box-sizing: border-box; padding: 16px; flex-shrink: 0;}.card { border: 1px solid #eee; box-shadow: 2px 4px 16px rgba(0, 0, 0, .06); border-radius: 4px; width: 300px; flex: 0 1 auto; padding: 16px;}.footer { display: flex; align-items: center; justify-content: center;}.main-section { flex: 1; display: flex;}a { text-decoration: none; color: white; font-size: 24px;}.sidebar ul { list-style: none; display: flex; flex-direction: column; gap: 16px;}.cards { padding: 48px; display: flex; /* flex-wrap: wrap; */ gap: 32px;}
<div class="header"> MY AWESOME WEBSITE</div><div class="main-section"><div class="sidebar"><ul><li><a href="#">⭐ - link one</a></li><li><a href="#">🦸🏽♂️ - link two</a></li><li><a href="#">🖌️ - link three</a></li><li><a href="#">👌🏽 - link four</a></li></ul></div><div class="cards"><div class="card">Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempora, eveniet? Dolorem dignissimos maiores non delectus possimus dolor nulla repudiandae vitae provident quae, obcaecati ipsam unde impedit corrupti veritatis minima porro?</div><div class="card">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quasi quaerat qui iure ipsam maiores velit tempora, deleniti nesciunt fuga suscipit alias vero rem, corporis officia totam saepe excepturi odit ea.</div><div class="card">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis illo ex quas, commodi eligendi aliquam ut, dolor, atque aliquid iure nulla. Laudantium optio accusantium quaerat fugiat, natus officia esse autem?</div><div class="card">Lorem ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus nihil impedit eius amet adipisci dolorum vel nostrum sit excepturi corporis tenetur cum, dolore incidunt blanditiis. Unde earum minima laboriosam eos!</div><div class="card">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis illo ex quas, commodi eligendi aliquam ut, dolor, atque aliquid iure nulla. Laudantium optio accusantium quaerat fugiat, natus officia esse autem?</div><div class="card">Lorem ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus nihil impedit eius amet adipisci dolorum vel nostrum sit excepturi corporis tenetur cum, dolore incidunt blanditiis. Unde earum minima laboriosam eos!</div></div></div><div class="footer"> The Odin Project ❤️</div>