如何使放置在图像上的文本居中

Posted

技术标签:

【中文标题】如何使放置在图像上的文本居中【英文标题】:How to center a text which is placed on an image 【发布时间】:2016-04-16 04:21:32 【问题描述】:

我有以下代码: html

<div class="container-fluid">
            <div class="row css-logo-image">
                <a href="#">
                <div class="meteor_head">
                    <h1 class="meteor_heading">Meteor</h1>
                    <h3>Some text!</h3>
                 </div>
                  <img src="" class="landing-image imageMeteor" />
                </a>
             </div>
             <div class="row css-logo-image">
                 <a href="#">
                  <img src="" class="landing-image" />
                 </a>
             </div>
    </div>

CSS:

.meteor_head
  position: absolute;
  z-index: 1;
  margin-left: 40vw;


.imageMeteor
  position: relative;
  z-index: 0;

.meteor_heading
    color: white;
    font-size: 100px !important;
    font-family: 'Exo 2', sans-serif;


.mainarea
    padding-top: 0 !important;

如您所见,我正在尝试使用 z-index 在图像上显示文本。它有效,但唯一的问题是我不知道如何响应地居中文本。我尝试了很多东西,包括:

margin-left:40vw;

它只是拒绝工作。

【问题讨论】:

【参考方案1】:
.meteor_head 
    position: absolute;
    z-index: 1;
    width: 100%;

.imageMeteor 
    position: relative;
    z-index: 0;

.meteor_heading 
    color: white;
    font-size: 100px !important;
    font-family: 'Exo 2', sans-serif;
    text-align: center;

h3 
    text-align: center;

.mainarea 
    padding-top: 0 !important;

【讨论】:

【参考方案2】:

如果你知道文本的高度/宽度,下面的技巧可能会起作用:

.meteor_head
  position: absolute;
  z-index: 1;
  width: 200px;
  height: 100px;
  top:50%;
  left:50;
  margin-top: -50px;
  margin-left: -100px;

基本上,您可以使用 top/left 50% 将绝对元素居中,然后通过减少元素的高度和宽度的一半来修复它...

【讨论】:

【参考方案3】:

试试这个

* 
  box-sizing: border-box;
  font-family: sans-serif;


.container 
   position: relative;
   overflow: hidden;


img 
   width: 100%;
   opacity: .8;
 

.centered-text 
   border-radius: 6px;
   padding: 0 6px;
   color: white;
   text-align: center;
   background-color: rgba(0, 0, 0, .4);
   position: absolute;
   top: 50%;
   left: 50%;
   -webkit-transform: translate(-50%, -50%);
   -moz-transform: translate(-50%, -50%);
   -o-transform: translate(-50%, -50%);
   -ms-transform: translate(-50%, -50%);
   transform: translate(-50%, -50%);
<div class="container">
  <img src="https://parrot-tutorial.com/images/nature_autumn.jpg">
  <div class="centered-text">
    <h4>Centered</h4>
    <p>Lorem ipsum dolor sit amet.</p>
  </div>
</div>

【讨论】:

还请对您的答案进行一些解释,仅发布代码的答案可能不会被视为正确答案。

以上是关于如何使放置在图像上的文本居中的主要内容,如果未能解决你的问题,请参考以下文章

将文本居中放置在 flexbox 中的图像上

移动后如何使文本出现在居中图像旁边?

图像上的居中文本叠加是对象适合和对象位置(CSS GRID)

如何使浮动在多条线上的多个图像居中?

如何使一张图像居中于另一张图像

如何使用引导程序使页脚文本居中,右侧有两个图像?