Edit in JSFiddle

<div class="container">
  <div class="vertical">
    <p>
      Why do I feel something wrong here?
    </p>
  </div>
</div>
.container {
  border: 1px solid blue;
  height: 200px; /* maybe any height */
  display: table;
}

.vertical {
  display: table-cell;
  border: 1px solid green;
  vertical-align: middle;
}