当前位置: 首页 > 知识库问答 >
问题:

在图像上居中文本(并做出响应)?

后易安
2023-03-14

在col-2中,我试图将“WHAT”文本置于图像的中心。

<div class="row">
  <div class="col-2">
     <div class="stackParent">
           <img class="stack-Img" src="img/base.png">
           <div class="stack-Txt">
              <div class="fourWsText stack-Txt-child">WHAT</div>
           </div>
     </div>
  </div>
  <div class="col-10">
    ...Variable length content...
  </div>
</div>

当我们调整浏览器的大小时,行的高度会改变,以便col-10中的所有内容都适合。我使用对象拟合:包含来保持图像比例正确。我需要"stack-Txt"div来调整图像的大小,以便文本将保持在图像的中心

或者你知道一个更好的方法来实现这一点?

目前的想法:把什么放在另一个子div,使flex,居中的文本证明内容/对齐项目

这些是css类在某一点上。。。但唯一重要的是img不会溢出col-2或高度(根据col-10的长度而变化)

.stackParent {
  position: relative;
  object-fit: contain;
  max-width: inherit;
  height: 20vh;
}

.stack-Txt {
  position: absolute;
  text-align: center;
  width: 100%;
  max-height: 15vh;
  min-height: 15vh;
  z-index: 4;
}

.stack-Txt-child {
}

.stack-Img {
  position: absolute;
  object-fit: contain;
  max-width: inherit;
  min-height: 15vh;
  max-height: 15vh;
  top: 0%;
  left: 0%;
  z-index: 3;
}

*注意:我也有媒体查询来调整文本大小,但这不会有什么区别。

共有2个答案

颜骁
2023-03-14

文本“什么”在任何屏幕分辨率下位于图像的中心。

.stackParent{
display: flex;
width: 100%;
height: 100%;
align-items: center;
justify-content: center;
}
.stack-Img{
position: absolute;
margin: 0;
min-height: 15vh;
max-height: 15vh;
}
.stack-Txt{
z-index: 99;
}
<div class="row">
  <div class="col-2">
     <div class="stackParent">
           <img class="stack-Img" src="img/base.png">
           <div class="stack-Txt">
              <div class="fourWsText stack-Txt-child">WHAT</div>
           </div>
     </div>
  </div>
  <div class="col-10">
    ...Variable length content...
  </div>
</div>
何涵衍
2023-03-14

如果您使用的是Bootstrap5,那么您可以使用内置类来实现这一点。

  • 应用. loction-相对到主div
  • 应用. img-flow
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

<div class="row">
  <div class="col-2">
    <div class="stackParent position-relative">
      <img class="stack-Img img-fluid" src="https://source.unsplash.com/random">
      <div class="stack-Txt position-absolute top-50 start-50 translate-middle">
        <div class="fourWsText stack-Txt-child text-white">WHAT</div>
      </div>
    </div>
  </div>
  <div class="col-10">
    ...Variable length content...
  </div>
</div>

 类似资料:
  • 我有一个容器div,其中高度和宽度设置为100%,位置是相对的。在div I内部,使用display:block和margin:auto将图像居中(图像小于div)。然后我尝试使用position:absolute,left:45%,top 82px将图像中的文本居中。垂直对齐看起来不错,但是随着文本中字符数量的增长,文本不再在中间对齐。因此,在我下面的图像中,如果文本为4个字符,文本将不再居中。

  • 我正在以列表格式显示文本和图像,但我不能让它们完美地排列在中间,在一条直线上,我错过了什么 下面是我的布局代码

  • 问题内容: 在开始之前,请允许我承认存在类似的问题,有些有答案,有些没有。但是,它们不能解决我的特定问题。如果您知道任何信息,请转给我。 现在,当我将图片添加到时,我将图片放置在光标所在的位置。我通过每次添加5个空格来为图像腾出空间来实现此目的。光标移到的末尾时,除非我键入一个键,否则它将停留在该位置而不会自动移动到下一行。即使我添加空格,它也仍然停留在那里,因此我的图像只是堆积在那里。我决定添加

  • 问题内容: 我正在使用Bootstrap 3.0创建网站。我是新手。我想要的是,当浏览器尺寸太小时,我想在div中心放置图像,我有此代码。 问题答案: 更新2018 Bootstrap 2.x 您可以创建一个新的CSS类,例如: 然后,将其添加到每个IMG: 或者,如果要将所有图像居中,则只需覆盖即可。 演示: http : //bootply.com/86123 Bootstrap 3.x 编辑

  • 问题内容: 我已经将图像内的边框设置为none。我现在想将该图像放在其包含div的中心。我曾尝试使用,但没有用。 我敢肯定,我忽略了一些愚蠢的事情,但是我想得到stackoverflow社区的帮助,所以这并不需要我花一个小时盯着屏幕来弄清楚。非常感谢。 这是CSS … 问题答案: 尝试将图片的属性设置为:

  • 我如何让图像垂直居中Div/Row.我已经搜索过了,但所有的解决方案似乎都指向这是一个好的解决方案——但它对我不起作用。我正在使用Bootstrap 3... https://www.bootply.com/vQFalT6KxG