在对象适合和对象位置(CSS GRID)的图像上居中放置文字

时间:2019-02-28 23:11:24

标签: html css image responsive css-grid

我想知道是否可以在适合对象的图像上使用居中的文字叠加(标题)。 AND对象位置:左上; (即不居中)

图像正在CSS网格中显示。 (显示:网格;)

我想做的事的例子:

Example

*********** ANOTHER EXAMPLE: I would also like to be able to do centered captions for portrait ratio images ***********

.container {
  height: 40vw;
  width: 40vw;
  border: 1px solid black;
  display:grid;
}

img {
  max-width: 100%;
  max-height:100%;
  height: 100%;
  width: 100%;
  object-fit: contain;
  object-position: left top;
}
<div class="container">
  <img src="https://ichef.bbci.co.uk/news/660/cpsprodpb/A825/production/_103954034_gettyimages-990971906.jpg">
</div>

提前谢谢!

2 个答案:

答案 0 :(得分:1)

以下是众多解决方案之一:

$data = (object)[ 'id' => 5, 'name' => 'dddd ddd', 'description' => 'ddd', ]; array_push($tempArray->clients, $data); 上使用position: relative;,然后在文本上使用.container(在这里我使用position: absolute;)来重新定位它,使用h3

HTML:

-10vh

CSS:

top

答案 1 :(得分:1)

object-fit控制替换后的内容如何适合其容器。就布局和位置而言,您无权访问被替换的内容。一种在网格中获得所需效果的方法是添加一个新容器,根据容器值在图像上设置一些width / height属性,然后相对于文本放置文本该图像,避免使用对象拟合。

.container {
  align-items: start;
  height: 40vw;
  width: 40vw;
  border: 1px solid black;
  display:grid;
}

img {
  display: block;
  height: auto;
  margin: 0 auto;
  max-height: 40vw;
  max-width: 40vw;
}

.textcontainer {
  position: relative;
}

.textcontainer-x-text {
  color: limegreen;
  font-family: sans-serif;
  font-weight: bold;
  left: 50%;
  position: absolute;
  text-align: center;
  text-transform: uppercase;
  top: 50%;
  transform: translate(-50%, -50%);
}
<p>Portrait</p>
<div class="container">
  <div class="textcontainer">
    <div class="textcontainer-x-text">Example Text Which Could Be Long</div>
    <img src="http://placehold.it/150x400">
  </div>
</div>

<p>Landscape</p>
<div class="container">
  <div class="textcontainer">
    <div class="textcontainer-x-text">Example Text Which Could Be Long</div>
    <img src="http://placehold.it/300x150">
  </div>
</div>

<p>Square</p>
<div class="container">
  <div class="textcontainer">
    <div class="textcontainer-x-text">Example Text Which Could Be Long</div>
    <img src="http://placehold.it/300x300">
  </div>
</div>