Full-screen vertically and horizontally centered text in CSS
This is as easily as adding one single div
:
<div class="css-vh-center"> Hello World <br /> Hello World <br /> Hello World <br /> </div>
and styling it properly:
.css-vh-center { position: fixed; /* or absolute */ top: 50%; left: 50%; /* bring your own prefixes */ transform: translate(-50%, -50%); }
All the glory goes to this Stack Overflow answer.
Note that this is not using flex-box solution (see the above linked answer for details), so should work even in older pre-IE8 browsers.
The whole code in it’s simplest form could like that:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Page Title</title> </head> <style> .css-vh-center { position: fixed; /* or absolute */ top: 50%; left: 50%; /* bring your own prefixes */ transform: translate(-50%, -50%); } </style> <body> <div class="css-vh-center"> Hello World <br /> Hello World <br /> Hello World <br /> </div> </body> </html>
Note that this is a strict and absolute positioning. Meaning that if the content will be higher than your browser window’s height, it will be clipped:
And no vertical scrollbar will appear.
So this is more like for vertical-and-horizontal centering of a single or just a few lines rather then doing the same with the content that can be scrolled.