How to Vertically Center Text With Css

How do I vertically center text with CSS?

You can try this basic approach:

div {  height: 100px;  line-height: 100px;  text-align: center;  border: 2px dashed #f69c55;}
<div>  Hello World!</div>

How do I vertically center text?


Flexbox allows you to vertically align the text without having a div with a fixed height. It is now supported by all the modern browsers.

Check my other answer to see all the problems and workarounds for Flexbox. The majority are for Internet Explorer.

display: flex;
align-items: center;

div {  width: 50px;  height: 100px;  display: flex;  align-items: center;  border: 1px solid black;}
<div>  Test</div>

Vertically align text within a div

Create a container for your text content, a span perhaps.

#column-content {  display: inline-block;}img {  vertical-align: middle;}span {  display: inline-block;  vertical-align: middle;}
/* for visual purposes */#column-content { border: 1px solid red; position: relative;}
<div id="column-content">
<img src=""> <span><strong>1234</strong> yet another text content that should be centered vertically</span></div>

How can I vertically center a div element for all browsers using CSS?

Below is the best all-around solution I could build to vertically and horizontally center a fixed-width, flexible height content box. It was tested and worked for recent versions of Firefox, Opera, Chrome, and Safari.

.outer {
display: table;
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;

.middle {
display: table-cell;
vertical-align: middle;

.inner {
margin-left: auto;
margin-right: auto;
width: 400px;
/* Whatever width you want */
<div class="outer">
<div class="middle">
<div class="inner">
<h1>The Content</h1>
<p>Once upon a midnight dreary...</p>

How to vertically center text inside flex element

To center the flex items along the main axis (in your case column/vertically), add justify-content: center; to the container (and erase the flex settings from the children):

#elem1 {  height: 180px;  border: 1px solid #ddd;  display: flex;  flex-direction: column;  justify-content: center;}
.inner_element { text-align: center;}
<div id="elem1">  <div class="inner_element">aaaa</div>  <div class="inner_element">bbbb</div></div>

How to vertically align text within div element css?

ex) display: table

div{  display: table;  width: 100px;  height: 50px;  background-color: #000;}
div p{ display: table-cell; text-align: center; vertical-align: middle; color: #fff;}
<div>  <p>chatter</p></div>

How to center text vertically in a heading?

The following solutions work for both single or multi-lined text.

1. Flexbox:

h1 {
width: 200px;
height: 200px;
margin: 0;
background-color: gray;
color: white;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
<h1>A quick brown fox</h1>

CSS how to vertically align text within a pseudo element

Easiest way? Add padding top. Little more difficult but better way, use flexbox.

These properties will do

display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
flex-direction: column;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
text-align: center;

Is it possible to vertically align text in a div with `display: -webkit-box;`

The following statement works for me:

-webkit-box-align: center;

For the "old" flexbox definition, is a good resource.

Related Topics

Leave a reply