HTML + CSS -使图像元素成为父元素?

o2rvlv0m  于 2023-07-01  发布在  其他
关注(0)|答案(2)|浏览(169)

我知道这看起来像是一个纽比问题,但是否可以将图像元素设置为父元素?如果是的话,我可以怎样做呢?
下面是我正在寻找的一个例子:

另外,我不能只将div元素作为父元素的原因是,我希望文本元素相对于图像元素,而不是div元素。这样我就可以将文本相对于图像居中。提前感谢任何帮助!

oalqel3c

oalqel3c1#

看来我已经想明白了我开始打乱一些价值观,我得到了它。
HTML:

<div id="main-div">
    <img id="image" src="url.com/image.png">
    <h1 id="text">Caption</h1>
</div>

CSS:

#main-div {
  position: absolute;
  top: 30px;
  left: 50%;
  margin: 0px auto;
  transform: translate(-50%, 0);
}

#image {
  position: absolute;
  top: 130px;
  left: 50%;
  margin: 0px auto;
  transform: translate(-50%, 0);
  color: white;
  font-family: "Roboto";
  text-align: center;
}

#text {
  position: absolute;
  top: 30px;
  left: 15%;
  margin: 0px auto;
  transform: translate(-50%, 0);
  display: block;
  border: thin red solid;
}

下面是一个JS Fiddle的代码和最终结果:https://jsfiddle.net/k3b70Lg7/

gt0wga4j

gt0wga4j2#

不可以,因为图像元素被替换。
但是,您可以将图像和文本元素 Package 在另一个div中并定位它。

<div class="outer-black">
   <div class="inner-image-text-wrapper">
       <img src="..">
       <div class="text"></div>
   </div>
</div>

现在,将 Package 器设置为inline-text意味着它将根据内容(* 图像 )进行扩展,并且通过将其设置为position:relative,您可以将文本(position:absolute *)放置在其中的任何位置。
完整示例

.outer-black {
  background: black;
  padding: 2em;
}
.inner-image-text-wrapper{
  position:relative;
  display:inline-block;
}
.inner-image-text-wrapper img{display:block;}
.inner-image-text-wrapper .text{
  position:absolute;
  top:105%;
  left:5%;
  right:5%;
  text-align:center;
  background:rgba(255,255,255,0.5);
}
<div class="outer-black">
  <div class="inner-image-text-wrapper">
    <img src="http://lorempicsum.com/simpsons/300/200/1">
    <div class="text">image caption</div>
  </div>
</div>

相关问题