The align-self property in CSS is a powerful tool in the flexbox layout model that allows developers to control the alignment of individual flex items along the cross axis. This property is particularly useful when you need to override the align-items value for a specific item within a flex container.
with hands-on learning.
get the skills and confidence to land your next move.
Understanding how to use align-self effectively can significantly enhance the flexibility and precision of your web layouts. This article will explore the different values of align-self, provide practical examples, and demonstrate how to apply these techniques in your web designs.
Understanding Align-Self
The align-self property allows you to adjust the alignment of a single flex item within a flex container, independently of the container’s align-items property. This is useful for creating layouts where some items need to be aligned differently than others.
Here’s a basic example to illustrate:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Align-Self Example</title>
<style>
.container {
display: flex;
height: 200px;
background-color: #f0f0f0;
}
.item {
flex: 1;
background-color: #007BFF;
margin: 5px;
color: white;
display: flex;
align-items: center;
justify-content: center;
}
.item:nth-child(2) {
align-self: flex-end;
}
</style>
</head>
<body>
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
</div>
</body>
</html>In this example, the flex container has three items. The second item has align-self: flex-end;, which aligns it at the bottom of the container, while the other items are aligned based on the container’s default alignment.
Align-Self Property Values
Auto
The auto value uses the align-items value from the flex container. If the container’s align-items is center, the item will be centered.
<style>
.item:nth-child(2) {
align-self: auto;
}
</style>Using align-self: auto; means the item will follow the container’s alignment rule.
Flex-Start
The flex-start value aligns the item at the start of the container’s cross axis.
<style>
.item:nth-child(2) {
align-self: flex-start;
}
</style>With align-self: flex-start;, the item is aligned at the top of the container, regardless of the container’s align-items value.
Flex-End
The flex-end value aligns the item at the end of the container’s cross axis.
<style>
.item:nth-child(2) {
align-self: flex-end;
}
</style>With align-self: flex-end;, the item is aligned at the bottom of the container.
Center
The center value centers the item along the container’s cross axis.
<style>
.item:nth-child(2) {
align-self: center;
}
</style>With align-self: center;, the item is centered within the container.
Baseline
The baseline value aligns the item along its text baseline.
<style>
.item:nth-child(2) {
align-self: baseline;
}
</style>With align-self: baseline;, the item is aligned based on its text baseline.
Stretch
The stretch value stretches the item to fill the container’s cross axis.
<style>
.item:nth-child(2) {
align-self: stretch;
}
</style>With align-self: stretch;, the item stretches to fill the height of the container, as long as it does not have a fixed height.
Practical Example
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Align-Self Practical Example</title>
<style>
.container {
display: flex;
height: 300px;
background-color: #e0e0e0;
}
.item {
flex: 1;
background-color: #4CAF50;
margin: 5px;
color: white;
display: flex;
align-items: center;
justify-content: center;
}
.item:nth-child(1) {
align-self: flex-start;
}
.item:nth-child(2) {
align-self: center;
}
.item:nth-child(3) {
align-self: flex-end;
}
</style>
</head>
<body>
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
</div>
</body>
</html>In this example, we use align-self to align each item differently within the flex container. The first item is aligned at the top, the second item is centered, and the third item is aligned at the bottom.
Conclusion
In this article, we explored the align-self property in CSS, which allows individual flex items to be aligned independently within a flex container. We covered the different values of align-self and provided practical examples to demonstrate their use.
Understanding and utilizing the align-self property can significantly enhance the flexibility and precision of your web layouts. Experiment with different values and see how they affect your designs.
Additional Resources
To learn more about CSS flexbox and related properties, consider exploring the following resources:
By leveraging these resources and practicing regularly, you’ll be able to create flexible and responsive web layouts that provide an excellent user experience on any device.




