控制CSS网格中的响应网格区域高度

时间:2018-04-05 15:06:34

标签: html css css-grid

我正在尝试使用CSS网格制作响应式图库,但是我有一个调整大小的问题。

gallery image

我希望更大的图像成为行的最大高度,但在调整窗口大小时,较小的图像会在图像上显示为网格。

我怎样才能做到这一点?



.container {
  margin: 0 auto;
}

.gallery-areas {
  display: grid;
  grid-gap: 30px;
  grid-template-areas: "big-image-1 big-image-2 small-image-1 small-image-2" "big-image-1 big-image-2 small-image-3 small-image-4"
}

.image-1 {
  grid-area: big-image-1;
}

.image-2 {
  grid-area: big-image-2;
}

.image-3 {
  grid-area: small-image-1;
}

.image-4 {
  grid-area: small-image-2;
}

.image-5 {
  grid-area: small-image-3;
}

.image-6 {
  grid-area: small-image-4;
}

img {
  width: 100%;
}

<div class="container">
  <section class="gallery">
    <div class="gallery-areas">
      <img class="image-1" src="https://dummyimage.com/389x435/000/fff" alt="">
      <img class="image-2" src="https://dummyimage.com/389x435/000/fff" alt="">
      <img class="image-3" src="https://dummyimage.com/389x201/000/fff" alt="">
      <img class="image-4" src="https://dummyimage.com/389x201/000/fff" alt="">
      <img class="image-5" src="https://dummyimage.com/389x201/000/fff" alt="">
      <img class="image-6" src="https://dummyimage.com/389x201/000/fff" alt="">
    </div>
  </section>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

我理解你的问题的方法是,当屏幕较小时,你想让较大的图像与较小的图像对齐。

问题在于您的图像宽度为100%,因此当屏幕较小时,高度(自动)较短,因为您的图像已达到100%标记。

我将图片1和2的高度更新为100%,并将max-width的{​​{1}}设置为100%,而不是使用宽度100%。这样,较大的图像可以具有100%的高度并且仍然具有适当的比率,因为宽度默认为自动

img
.container {
  margin: 0 auto;
}

.gallery-areas {
  display: grid;
  grid-gap: 30px;
  grid-template-areas: "big-image-1 big-image-2 small-image-1 small-image-2" "big-image-1 big-image-2 small-image-3 small-image-4"
}

.image-1 {
  grid-area: big-image-1;
}

.image-2 {
  grid-area: big-image-2;
}

.image-3 {
  grid-area: small-image-1;
}

.image-4 {
  grid-area: small-image-2;
}

.image-5 {
  grid-area: small-image-3;
}

.image-6 {
  grid-area: small-image-4;
}

img {
  max-width: 100%;
}
.image-1, .image-2 {
  height: 100%;
}