-
Hajipur, Bihar, 844101
In CSS Flexbox, flex items are the direct child elements of a flex container. While the flex container defines the layout context, flex items are the elements that respond to Flexbox properties, allowing developers to control their size, order, alignment, and flexibility within the container.
In this chapter, you will learn what flex items are, why they are important, core flex item properties, practical examples, accessibility considerations, common mistakes, best practices, and real-world use cases.
A flex item is any element that is a direct child of a flex container. Flex items automatically adopt Flexbox behaviors, which allows them to:
Grow or shrink based on available space
Align along the main or cross axis
Change their visual order without modifying HTML
Respect spacing and wrapping rules of the container
HTML structure for flex items:
<div class="flex-container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
</div>
Here, .item elements are flex items, and they respond to Flexbox properties applied to the container and themselves.
Flex items are critical because:
They allow flexible, responsive layouts without fixed widths
They can grow or shrink to fit available space
Their alignment can be controlled along both axes
Their visual order can be adjusted without changing the HTML structure
They help maintain consistent spacing and layout across devices
Flex items are the building blocks that make Flexbox powerful and versatile.
flexThe flex property is a shorthand for flex-grow, flex-shrink, and flex-basis. It defines how a flex item grows or shrinks relative to other items.
.item {
flex: 1 1 200px; /* Grow, shrink, and base width */
}
flex-grow – Determines how much an item can grow relative to others
flex-shrink – Determines how much an item can shrink relative to others
flex-basis – Initial main size of the item before growing or shrinking
align-selfOverrides the container’s align-items property for individual items, controlling their alignment along the cross axis.
.item-special {
align-self: flex-end; /* Align only this item to bottom */
}
Values:
auto – Default, inherits align-items from container
flex-start – Aligns to the start of the cross axis
flex-end – Aligns to the end of the cross axis
center – Centers along cross axis
baseline – Aligns text baseline
stretch – Stretches to fill container
orderControls the visual order of flex items without changing HTML structure.
.item:first-child {
order: 2; /* Moves first item to second position */
}
Default value is 0. Items with lower order appear first.
flex-growSpecifies how much a flex item can grow relative to others.
.item {
flex-grow: 2; /* Grows twice as much as items with flex-grow: 1 */
}
flex-shrinkSpecifies how much a flex item can shrink relative to others when space is limited.
.item {
flex-shrink: 0; /* Prevents shrinking */
}
flex-basisSets the initial main size of the item before growing or shrinking.
.item {
flex-basis: 150px;
}
.flex-container {
display: flex;
}
.item {
flex: 1; /* All items grow equally */
padding: 20px;
background-color: #f0f0f0;
margin: 5px;
}
.item1 { flex: 2; } /* Grows twice as much */
.item2 { flex: 1; } /* Normal growth */
.item3 { flex: 1; }
.item-special {
align-self: center; /* Center this item vertically */
}
.item:first-child {
order: 3; /* Move first item to the end */
}
These examples show how flex items adapt within a container while giving individual control when needed.
Ensure that visual order changes using order do not confuse users relying on screen readers
Maintain logical HTML structure for keyboard navigation
Provide sufficient spacing for touch devices
Avoid shrinking items too much, which could hide content
Proper accessibility ensures all users can navigate and understand content despite layout adjustments.
Overusing flex-grow and flex-shrink without planning proportions
Ignoring flex-basis when setting item sizes
Misusing order and confusing reading order for screen readers
Forgetting to set align-self for items that require special alignment
Assuming all child elements are flex items without setting display: flex on the container
Avoiding these mistakes ensures predictable and maintainable layouts.
Use flex shorthand for simplicity
Only override align-self when necessary
Use order sparingly to maintain logical reading order
Combine flex-basis, flex-grow, and flex-shrink for responsive layouts
Test flex items across different screen sizes and devices
Flex items are used in:
Cards or tiles in a grid
Buttons or navigation links
Responsive images and text blocks
Form input fields and controls
Dashboard panels and widgets
Mastering flex items allows developers to create flexible and adaptive layouts that respond to screen sizes and user interactions.
Flex items are the direct children of a flex container and are the elements that respond to Flexbox properties. With properties like flex, align-self, order, flex-grow, flex-shrink, and flex-basis, developers can control how each item behaves, aligns, and adapts within the container. Understanding flex items is essential for building responsive, flexible, and professional web layouts.
Q1. Make all flex items take equal space.
Q2. Make one item grow twice as much as others.
Q3. Shrink one item faster than others on small screens.
Q4. Set a fixed initial width using flex-basis.
Q5. Use shorthand flex: 1 0 100px.
Q6. Change the order of one item to come first.
Q7. Align one item to the top while others remain centered.
Q8. Prevent one item from shrinking.
Q9. Make the first item grow and the last shrink.
Q10. Remove alignment from one item using align-self: auto.