Hey there! Ready to dive into one of the coolest and most powerful tools in CSS? Today, we’re going to explore Flexbox. If you’ve ever struggled with aligning items or distributing space in a neat and responsive way, Flexbox is your new best friend.
Flexbox (Flexible Box Layout) is a one-dimensional layout system that allows you to control the alignment, spacing, and distribution of elements inside a container—even when the size of those elements is unknown or dynamic.
Think of Flexbox as a toolbox to create layouts that can stretch, shrink, or align depending on the available space.
To start using Flexbox, you only need to set display: flex on a container. Once you do that, all the direct children of that container become flex items, and they’ll immediately start behaving differently.
Item 1Item 2Item 3
.flex-container { display: flex; }
Now, all the items inside .flex-container are flex items and can be easily manipulated.
By default, Flexbox arranges items in a row (horizontally), but what if you want them in a column (vertically)? Flexbox gives you total control with the flex-direction property.
.flex-container { display: flex; flex-direction: column; }
Now, the items will stack vertically!
Let’s say you have three items, and you want to spread them out evenly in your container. This is where justify-content comes in handy.
.flex-container { display: flex; justify-content: space-between; }
Now, the items will be evenly spaced within the container.
While justify-content controls horizontal alignment, align-items takes care of vertical alignment (or along the cross-axis). Here are your options:
.flex-container { display: flex; align-items: center; }
Now, all the items will be vertically centered within the container.
Sometimes, you want certain items to grow, shrink, or have a fixed starting size. The flex-grow, flex-shrink, and flex-basis properties let you control that behavior:
Example:
.item { flex-grow: 1; flex-shrink: 0; flex-basis: 100px; }
This ensures that the item starts at 100px, but it can grow to fill extra space if needed, without shrinking.
Let’s put all this together with an example!
Item 1Item 2Item 3
.flex-container { display: flex; flex-direction: row; justify-content: space-around; align-items: center; height: 300px; background-color: #f0f0f0; } .item { background-color: #4CAF50; padding: 20px; color: white; flex-grow: 1; }
In this example:
Flexbox takes away much of the complexity of layout design that we used to struggle with in CSS. No more floats, no more worrying about clearing, and much easier responsive design!
Ridoy Hasan
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3