在动态图像中居中文本

时间:2016-02-18 22:14:12

标签: javascript html css

我有一个动态的图像:100%宽度和100%高度,如何将文本垂直和水平保持在中心内部,无论它的大小是多少?

https://jsfiddle.net/jzhang172/h9y8umr2/



html, body{
  margin:0px;

}
.wrapper{
position:relative;
}
img{
  height:100%;
  width:100%;
  position:relative;
}
.text-wrapper{
  position:absolute;
  top:50%;
  left:50%;
  margin-left:-25%;
  margin-top:-25%;
}

<div class="wrapper">
<img src="http://www.wildlifetrusts.org/sites/default/files/images/Planting%20along%20realigned%20River%20Chelt%20Gloucs%20WT,%20EA%20and%20landowner2%20comp.jpg">
<div class="text-wrapper">

<h2>Sample Text</h2>
<p>Text Sample</p>

</div>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

我删除了保证金左:-25%和保证金最高价:-25%并增加保证金:0自动;并修复了它

    .text-wrapper{
  position:absolute;
  top:50%;
  left:50%;
  margin: 0 auto;
  }

Updated fiddle:

答案 1 :(得分:1)

我认为您需要使用transform: translate() 居中文本。 顺便说一句,最好使用CSS Flexboxes - fiddle here:)

&#13;
&#13;
html, body{
  margin:0px;

}
.wrapper{
position:relative;
}
img{
  height:100%;
  width:100%;
  position:relative;
}
.text-wrapper{
  position:absolute;
  top:50%;
  left:50%;
  transform: translateX(-50%) translateY(-50%);
}
&#13;
<div class="wrapper">
<img src="http://www.wildlifetrusts.org/sites/default/files/images/Planting%20along%20realigned%20River%20Chelt%20Gloucs%20WT,%20EA%20and%20landowner2%20comp.jpg">
<div class="text-wrapper">

<h2>Sample Text</h2>
<p>Text Sample</p>

</div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我认为你唯一的问题是你的文本包装类。

如果你写上:50%而左:50%,文本div的左上角将是你的img的确切中心。

您只需将边距左边和边距顶部调整为文本大小(然后为边距写入文字宽度/ 2和文本高度/ 2):)