Use text-align: center to achieve horizontal centering of text; 2. Use Flexbox's align-items: center and justify-content: center to achieve vertical and horizontal centering; 3. Single-line text can be centered vertically by setting line-height equal to the container height; 4. Absolute positioning elements can be centered in combination with top: 50%, left: 50% and transform: translate(-50%, -50%); 5. The place-items: center of CSS Grid can also achieve dual-axis centering at the same time. Modern layouts recommend using Flexbox or Grid first.
Centering text in CSS is one of the most common styling tasks, and how you do it depends on what kind of centering you need: horizontal centering of text within a block, or vertical centering, or both. Here's a breakdown of the most practical methods.

1. Horizontal Text Centering (Left-Right)
To center text horizontally inside a container, use the text-align
property:
.center-text { text-align: center; }
This works on inline or inline-block elements (like text, spans, images) within a block-level container.

Example:
<div class="container"> <p>This text is centered horizontally.</p> </div>
.container { text-align: center; }
? Use
text-align: center
for centering text, links, buttons, or images inside a div or paragraph.
2. Vertical Centering (Top-Bottom)
Vertical centering is trickier and depends on the context. Here are the most reliable methods:
Method A: Flexbox (Recommended for modern layouts)
Use display: flex
with align-items: center
to center content vertically (and optionally justify-content: center
for horizontal centering too):
.flex-center { display: flex; align-items: center; /* Vertical center */ justify-content: center; /* Horizontal center */ height: 200px; /* Container needs a height */ }
Works great for:
- Centering text in a card, button, or full viewport
- Responsive designs
Method B: CSS Grid
Similar to flexbox, but using Grid:
.grid-center { display: grid; place-items: center; /* Centers both vertically and horizontally */ height: 200px; }
Method C: Line Height (For single-line text only)
If you're centering a single line of text in a container, match the line-height
to the container's height:
.single-line-center { height: 40px; line-height: 40px; /* Same as height */ text-align: center; }
?? Only works for single lines. Text will overflow or misalign if wrapped.
Method D: Transform (For absolutely positioned elements)
Useful when the container is positioned:
.absolute-center { position: relative; } .absolute-center p { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; }
This method works regardless of container size and is great for overlays or modals.
Summary: Quick Reference
Goal | CSS Method |
---|---|
Center text horizontally | text-align: center
|
Center single line | line-height = height
|
Full center (flex) | display: flex; justify-content: center; align-items: center;
|
Full center (grid) | display: grid; place-items: center;
|
Absolute center | top: 50%; left: 50%; transform: translate(-50%, -50%)
|
For most modern use cases, Flexbox is the easiest and most reliable way to center text both vertically and horizontally. If you're just aligning paragraph text, stick with text-align: center
.
Basically, pick the method based on your layout needs — but flexbox covers 90% of centering scenarios cleanly.
The above is the detailed content of How to center text in 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)

Different browsers have differences in CSS parsing, resulting in inconsistent display effects, mainly including the default style difference, box model calculation method, Flexbox and Grid layout support level, and inconsistent behavior of certain CSS attributes. 1. The default style processing is inconsistent. The solution is to use CSSReset or Normalize.css to unify the initial style; 2. The box model calculation method of the old version of IE is different. It is recommended to use box-sizing:border-box in a unified manner; 3. Flexbox and Grid perform differently in edge cases or in old versions. More tests and use Autoprefixer; 4. Some CSS attribute behaviors are inconsistent. CanIuse must be consulted and downgraded.

Thevertical-alignpropertyinCSSalignsinlineortable-cellelementsvertically.1.Itadjustselementslikeimagesorforminputswithintextlinesusingvalueslikebaseline,middle,super,andsub.2.Intablecells,itcontrolscontentalignmentwithtop,middle,orbottomvalues,oftenu

accent-color is an attribute used in CSS to customize the highlight colors of form elements such as checkboxes, radio buttons and sliders; 1. It directly changes the default color of the selected state of the form control, such as changing the blue check mark of the checkbox to red; 2. Supported elements include input boxes of type="checkbox", type="radio" and type="range"; 3. Using accent-color can avoid complex custom styles and extra DOM structures, and maintain native accessibility; 4. It is generally supported by modern browsers, and old browsers need to be downgraded; 5. Set accent-col

InstallDartSassvianpmafterinstallingNode.jsusingnpminstall-gsass.2.CompileSCSStoCSSusingthecommandsassinput.scssoutput.css.3.Usesass--watchinput.scssoutput.csstoauto-compileonsave.4.Watchentirefolderswithsass--watchscss:css.5.Usepartialswith_prefixfo

To change the text color in CSS, you need to use the color attribute; 1. Use the color attribute to set the text foreground color, supporting color names (such as red), hexadecimal codes (such as #ff0000), RGB values (such as rgb(255,0,0)), HSL values (such as hsl(0,100%,50%)), and RGBA or HSLA with transparency (such as rgba(255,0,0,0.5)); 2. You can apply colors to any element containing text, such as h1 to h6 titles, paragraph p, link a (note the color settings of different states of a:link, a:visited, a:hover, a:active), buttons, div, span, etc.; 3. Most

CSStransitionsenablesmoothpropertychangeswithminimalcode,idealforhovereffectsandinteractivefeedback.1.Usethesyntaxtransition:propertydurationtiming-functiondelay;todefinetransitions,liketransition:background-color0.3sease0.1s;.2.Specifytransition-pro

UseautomatedtoolslikePurgeCSSorUnCSStoscanandremoveunusedCSS;2.IntegratepurgingintoyourbuildprocessviaWebpack,Vite,orTailwind’scontentconfiguration;3.AuditCSSusagewithChromeDevToolsCoveragetabbeforepurgingtoavoidremovingneededstyles;4.Safelistdynamic

The style placement method needs to be selected according to the scene. 1. Inline is suitable for temporary modification of single elements or dynamic JS control, such as the button color changes with operation; 2. Internal CSS is suitable for projects with few pages and simple structure, which is convenient for centralized management of styles, such as basic style settings of login pages; 3. Priority is given to reuse, maintenance and performance, and it is better to split external link CSS files for large projects.
