Image or content are the soul of any website. Therefore content and images should be properly aligned according to content. To align center we use CSS property text-align:center or margin:auto.
But making things vertically center is not so easy. Here we will discuss the different ways of making objects vertically center/middle.
Vertical align If we know the containers width or height!
<style type="text/css">
.posrel{position:relative;width:600px; height:400px;border:solid 1px #111;}
.positioncenter{position:absolute; top:50%; left:50%; width:300px; height:200px; margin-left:-150px; margin-top:-100px; border:solid 1px #c33;}
</style>
<div class="posrel">
<div class="positioncenter">
Hello friends
<p>kishan</p>
</div>
</div>
Vertical align if we don’t width or height
CSS
<style type="text/css">
.clearfix:after,.clearfix:before{content:""; display:table; clear:both;}
.clearfix{clear:both;}
/**** Middle center object using display property ***/
.imgcenterbox{width:400px; height:400px; border:solid 1px #ddd; display:table; float:left; margin-right:30px;}
.boxrow{display:table-cell; text-align:center; vertical-align:middle;}
/***************************/
.posrel{position:relative;width:600px; height:400px;border:solid 1px #111;}
.positioncenter{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border:solid 1px #c33;}
/***************************/
.flexcss {display: flex;width:600px; height:400px;border:solid 1px #111;}
.child {margin: auto;border:solid 1px #c33;}
</style>
HTML
<!-- Using Display Property -->
<div class="clearfix">
<div class="imgcenterbox">
<div class="boxrow">
<img src="img.jpg" />
</div>
</div>
<div class="imgcenterbox">
<div class="boxrow">
I am containers content
<p>Vertically center using display property</p>
</div>
</div>
</div>
<!-- Using Position Property -->
<div class="clearfix">
<div class="posrel">
<div class="positioncenter">
I am containers content
<p>Vertically center using Position property</p>
</div>
</div>
</div>
<!-- Using Flex Property -->
<div class="clearfix flexcss">
<div class="child">
I am containers content
<p>Vertically center using Flex property</p>
</div>
</div>


