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

标签 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>

最佳答案

我理解你的问题的方式是,当屏幕较小时,你希望使较大的图像与较小的图像对齐。

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

我将图像 1 和 2 的高度更新为 100%,并将 imgmax-width 设置为 100%,而不是使用宽度 100%。这样,较大的图像可以具有 100% 的高度,并且仍然具有正确的比例,因为宽度默认为自动

.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%;
}
<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>

关于html - 控制 CSS 网格中的响应式网格区域高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49675712/

相关文章:

javascript - 语法错误(应为赋值或函数调用,但看到的是表达式)

javascript - 使用 Jquery 选择最后一个 div 的所有子项?

CSS 网格单元格不是正方形

html - 具有未定义列数的网格布局

css - 如何防止长段落破坏您的 CSS 网格 [模板区域]

javascript - 使用 jquery 更改 css 值

javascript - 如何获取新加载的图像的宽度/自然宽度?

html - 站点依赖项和 CSS 未加载

javascript - 图像映射禁用图像上的 <A> 标签

html - Bootstrap 上的 CSS 媒体查询不适用于 iPhone