I have list with images and text. And I want to see text over image.
Following css will make an element vertically middle aligned:
.parent {
position: relative;
}
.child {
transform: translateY(-50%);
position: absolute;
top: 50%;
}
And following css will make an element both horizontally and vertically middle aligned:
.parent {
position: relative;
}
.child {
transform: translateY(-50%);
position: absolute;
text-align: center;
right: 0;
top: 50%;
left: 0;
}
.list {
overflow: hidden;
list-style: none;
padding: 0;
margin: 0;
}
li{
position: relative;
float:right
}
.textoverlay {
transform: translateY(-50%);
text-align: center;
position: absolute;
z-index: 10;
right: 0;
top: 50%;
left: 0;
}
<ul class="list">
<li>
<div class="textoverlay">
<a href=""><h1>Text</h1></a>
<p>Lorem ipsum dolor sit amet, co</p>
</div>
<img width="350" height="150" src="http://placehold.it/350x150" >
</li>
</ul>
Try this css:
.textoverlay {
margin: 50px 25px 0 0;
position: absolute;
z-index: 22;
left:40%
}
Snippet Copy this
li{
float:right;
position:relative;
}
.textoverlay {
position: absolute;
z-index: 22;
left:150px;
top:50px;
}
<li>
<div class="textoverlay">
<a href=""><h1>Text</h1></a>
<p>Lorem ipsum dolor sit amet, co</p>
</div>
<img width="333" height="250" src="https://www.google.com.pk/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png" >
</li>
for change the textoverlay position change the value of top and left att in css Hope this helps THANKS!
You can do this using translate
transform:
ul{
list-style:none;
}
ul li{
position: relative;
float:right;
width:330px;
}
.textoverlay {
position: absolute;
z-index: 22;
left:50%;
top:50%;
transform:translate(-50%,-50%);
-webkkit-transform:translate(-50%,-50%);
text-align:center;
width: 100%;
}
<ul>
<li>
<div class="textoverlay">
<a href=""><h1>Text</h1></a>
<p>Lorem ipsum dolor sit amet, co</p>
</div>
<img src="http://www.codeproject.com/KB/GDI-plus/ImageProcessing2/img.jpg" >
</li>
</ul>