Pravayest Pravayest
Pravayest Pravayest

Reputation: 55

Div with text over image

I have list with images and text. And I want to see text over image.

li{
   float:right
}
.textoverlay {
    margin: 50px 25px 0 0;
    position: absolute;
    z-index: 22;
}
<li>
    <div class="textoverlay">
        <a href=""><h1>Text</h1></a>
        <p>Lorem ipsum dolor sit amet, co</p>
    </div> 
    <img width="667" height="500" src="..." >       
</li>

But is it possible to align a <div class="textoverlay"> to the middle of the image?

Upvotes: 0

Views: 846

Answers (4)

Mohammad Usman
Mohammad Usman

Reputation: 39322

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>

Upvotes: 2

code.rider
code.rider

Reputation: 1897

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!

Upvotes: 0

A. Jain
A. Jain

Reputation: 157

Try this css:

 .textoverlay {
     margin: 50px 25px 0 0;
     position: absolute;
     z-index: 22;
     left:40%
  }

Upvotes: 0

Minal Chauhan
Minal Chauhan

Reputation: 6148

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>

Upvotes: 1

Related Questions