What is the difference between align-self and align-items?
Jul 05, 2025 am 02:01 AMalign-items is used to set the default cross-axis alignment of all items in the entire flex container, while align-self is used to cover an item individually. 1. align-items is a container attribute, affecting all child elements. The default value is stretch. You can choose flex-start, flex-end, and center; 2. align-self is an attribute of individual child elements, which can override container settings and allow specific elements to adopt different alignment methods; 3. When using it, align-items should be set to unified control, and then individual exceptions should be adjusted through align-self. Both must be effective in the parent container of display:flex.
When working with CSS Flexbox, align-self
and align-items
both control how items are aligned along the cross axis — but they're used in different contexts and have distinct purposes.
What's the basic difference?
-
align-items
is a property applied to the flex container and affects all flex items inside it. -
align-self
is applied directly to an individual flex item , allowing it to override the container'salign-items
setting.
Now let's break this down further with practical usage scenarios.
How align-items
works
This property sets the default alignment for all items inside a flex container. Think of it as a global rule for vertical alignment (assuming a row-based flex layout).
Common values ??include:
-
flex-start
-
flex-end
-
center
-
stretch
(default)
For example:
.container { display: flex; align-items: center; }
All items inside .container
will be vertically centered by default. This saves you from having to set alignment individually on each item.
Use align-items
when you want consistent alignment across all child elements.
When to use align-self
Sometimes you want one or two items to behave differently. That's where align-self
comes in.
It works just like align-items
, but apply only to a single item. It lets that item ignore the container's alignment rule and define its own.
Example:
.item-special { align-self: flex-end; }
Even if the container says align-items: center
, this special item will align to the end.
So think of align-self
as a way to create exceptions. It gives you more fine-grained control without needing extra wrappers or changing the parent's settings.
Common pitfalls and tips
- If you forget that
align-self
overridesalign-items
, you might spend time debugging why one item isn't aligning like the others. - Use
align-items
first to set a base alignment, then applyalign-self
only when needed. - Both properties only work in flex containers — so make sure
display: flex
is set on the parent.
A good mental model:
-
align-items
: "How should I line up my kids by default?" -
align-self
: "I know the rules, but I want to stand somewhere else."
In short, align-items
controls the group, while align-self
controls individuals. Use them together for flexible and precise layouts.
The above is the detailed content of What is the difference between align-self and align-items?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are three ways to selectively include CSS on a specific page: 1. Inline CSS, suitable for pages that are not frequently accessed or require unique styles; 2. Load external CSS files using JavaScript conditions, suitable for situations where flexibility is required; 3. Containment on the server side, suitable for scenarios using server-side languages. This approach can optimize website performance and maintainability, but requires balance of modularity and performance.

Flexboxisidealforone-dimensionallayouts,whileGridsuitstwo-dimensional,complexlayouts.UseFlexboxforaligningitemsinasingleaxisandGridforprecisecontroloverrowsandcolumnsinintricatedesigns.

The HTML popover attribute transforms elements into top-layer elements that can be opened and closed with a button or JavaScript. Popovers can be dismissed a number of ways, but there is no option to auto-close them. Preethi has a technique you can u

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

In the following tutorial, I will show you how to create Lottie animations in Figma. We'll use two colorful designs to exmplify how you can animate in Figma, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Fig

We put it to the test and it turns out Sass can replace JavaScript, at least when it comes to low-level logic and puzzle behavior. With nothing but maps, mixins, functions, and a whole lot of math, we managed to bring our Tangram puzzle to life, no J

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.
