There are three ways to vertically center the text: one is to use flex layout, set display: flex and align-items: center for the container; the second is to use line-height for a single line of text, and the setting value is consistent with the container height; the third is to add transform to absolute positioning, set top and left to 50% and translate (-50%, -50%); in addition, it is necessary to note that the container must have clear height, adaptation issues of multi-line text and adjustments under responsive design.
Keeping text vertically centered in the container is a common problem when laying out web pages. Many people think this should be very simple at first, but it is sometimes a bit confusing to implement it with CSS. In fact, there are many methods, the key is to look at the specific scenario and choose the right method.

Using flex is the easiest and most commonly used
Flexbox is one of the most recommended ways at present, especially when you have already used flex to make the overall layout. Just add display: flex
to the container and cooperate with align-items: center
.

.container { display: flex; align-items: center; height: 100px; }
The advantage of this method is that it doesn’t matter what the height of the text is, nor does it need to calculate margin or padding. As long as the container has a clear height, it can basically be centered.
Note: If your container itself does not have a height set, vertical centering of flex may not take effect. Because the browser does not know what height to use as a reference.

Use line-height to control single-line text
If it is just a single line of text, such as a button or title, you can consider using line-height
. This method is old school but practical, especially suitable for elements with fixed heights.
.container { height: 50px; line-height: 50px; }
After this setting, the text will be vertically centered in the container. However, it should be noted that it only applies to single-line text . If there are multiple lines of text, the effect will be less than ideal and may appear to be out of alignment.
Accurate control with absolute positioning transform
If you need to be compatible with old browsers, or use them in relatively complex layouts, you can use absolute positioning to add transform
.
.container { position: relative; } .text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
This method can not only center text, but also center block-level elements, pictures, etc. However, it is more suitable for situations that are separated from document flow, such as pop-up windows and floating prompts.
Pay attention to some small details that are easy to ignore
- The container must have a clear height, otherwise many methods will fail;
- If there is too much text content, consider whether the line break and container width are appropriate;
- In responsive design, font sizes or container sizes may need to be adjusted for different screen sizes;
- If you are using grid layout, you can also use a flex-like method to center it.
Basically these are the methods. Each type has applicable scenarios, and it is not difficult to use if you choose the right one. The key is to understand the principles behind them, not rote code.
The above is the detailed content of Techniques for vertical centering text within a container using css. 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.
