<div class="ghost-center">
  <p>I'm vertically centered multiple lines of text in a container. Centered with a ghost pseudo element</p>
body {
  background: #f06d06;
  font-size: 80%;

div {
  background: white;
  width: 240px;
  height: 200px;
  margin: 20px;
  color: white;
  resize: vertical;
  overflow: auto;
  padding: 20px;

.ghost-center {
  position: relative;
  letter-spacing: -0.5em; /* remove the gap between the ::after element and the vertical aligned content */

.ghost-center > * {
  letter-spacing: normal; /* reset letter-spacing */

.ghost-center::after {
  content: " ";
  display: inline-block;
  height: 100%;
  width: 0;
  vertical-align: middle;

.ghost-center p {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  padding: 20px;
  background: black;

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://codepen.io/shshaw/pen/epmrgO


This Pen doesn't use any packages.