css 在带有background-image的div周围添加环绕div会隐藏图像

xe55xuns  于 2023-03-14  发布在  其他
关注(0)|答案(1)|浏览(168)

我有3个来自url的带有background-image的div。下面你可以看到它们在容器内部时都显示出来。
但是一旦我向它们添加了一个 Package 器div,它就不会显示,因为 Package 器div没有高度。
有没有一种方法可以在不指定高度的情况下使用 Package 器,并根据里面的div来计算它?
在下面的片段中,我把2个版本:一个没有 Package div,你可以看到3个图像,一个有 Package div,图像不显示。
我假设这是因为我使用了高度和宽度的百分比,并且它是从父项计算出来的,现在我用另一个div Package 它,它从0计算百分比,但是我怎么才能像从外部父项那样计算百分比呢?

.container {
  height: 100vh;
  width: 100%
}

.img {
  background-image: url('https://images.pexels.com/photos/14641908/pexels-photo-14641908.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1');
  background-size: 50%;
  width: 50%;
  height: 50%;
  background-repeat: no-repeat;
}

.images_wrapper {
  display: flex;
  flex-wrap: wrap; 
  justify-content: center;
  align-items: center;
}
<div class="container">
  <div class="img"></div>
  <div class="img"></div>
  <div class="img"></div>
</div>

<div class="container">
  <div class="images_wrapper">
    <div class="img"></div>
    <div class="img"></div>
    <div class="img"></div>
  </div>
</div>
ne5o7dgx

ne5o7dgx1#

.img div的高度在第二种情况下为零,因此不可见,因为它们没有任何内容,并且它们的高度定义为50%也导致高度为零,因为它们的父容器/flex容器没有定义高度。
.img定义一个min-height以避免这种情况,或者为.images-wrapper定义一个高度以获得.img时50%高度的有效参考。

.container {
  height: 100vh;
  width: 100%
}

.img {
  background-image: url('https://images.pexels.com/photos/14641908/pexels-photo-14641908.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1');
  background-size: 50%;
  width: 50%;
  height: 50%;
  background-repeat: no-repeat;
}

.images_wrapper {
  display: flex;
  flex-wrap: wrap; 
  justify-content: center;
  align-items: center;
}
.images_wrapper .img {
  min-height: 100px;
}
<div class="container">
  <div class="img"></div>
  <div class="img"></div>
  <div class="img"></div>
</div>

<div class="container">
  <div class="images_wrapper">
    <div class="img"></div>
    <div class="img"></div>
    <div class="img"></div>
  </div>
</div>

相关问题