考虑到图像的响应性,我如何将文本置于图像的顶部?

时间:2015-10-07 18:03:24

标签: html css image responsive-design

文本已位于图像的顶部,但在调整页面大小时图像的大小会发生变化。你怎么能让文本调整它的中心到图像的高度?

这就是我得到的

HTML

<section id="eyeCatcher">
   <div id="catchContainer" >
       <div id="eyeCatchQuote">
        <h1>text</h1>
       </div>

       <span id="eyeCatchPhoto" role="img" >
           <span class="inner">
           </span>
       </span>
   </div>
</section>

CSS

#eyeCatcher{
   max-width: 1366px; 
   margin: 0 auto; 
}

#catchContainer {
   max-width: 1366px; 
}

#catchContainer #eyeCatchPhoto {
   width: 100%;
   display: inline-block;
   vertical-align: middle;
   font: 0/0 serif;
   text-shadow: none;
   color: transparent;
   background-size: 100%;
   background-position: 50% 50%;
   background-repeat: no-repeat;
}

#catchContainer #eyeCatchPhoto .inner{
   padding-top: 60%;
   display: block; 
   height: 0; 
}

#catchContainer #eyeCatchPhoto{
   background-image: url("../img/overview.jpeg");
}

#eyeCatchQuote{
   margin-top: -26px; 
   position: relative; 
   top: 300px; 
}

这就是它的样子

Big

Resize to small

1 个答案:

答案 0 :(得分:1)

您可以使用实际图像,而不是使用带有背景图像的跨度。然后​​可以使用绝对定位使文本居中。

HTML:

<section id="eyeCatcher">
 <div id="catchContainer">
    <div id="eyeCatchQuote">
      <h1>TEXT ELEMENT</h1>
    </div>
    <img src="YOURIMage" id="eyeCatchPhoto" role="img">
  </div>
</section>

CSS:

#eyeCatcher {
  max-width: 1366px;
  margin: 0 auto;
}
#catchContainer {
  max-width: 1366px;
  position: relative;
}
#catchContainer #eyeCatchPhoto {
 width:100%;
}
#eyeCatchQuote {
 position: absolute;
 top: 50%;
 left:50%;
 margin:0;
 transform:translateX(-50%)translateY(-50%);
}

这是fiddle