将响应图像添加到分成 4 个响应框的网站

Add responsive image to a website split into 4 responsive boxes

我想制作一个由 4 个框组成的网站,每个框的高度和宽度各为 50%。我找到了这样做的代码,但现在我很难将图像添加到每个框中。我希望四个 div 中的每一个都有不同的图像,并且它们应该根据 window 大小进行缩放。感谢任何帮助。

这是我的代码笔:https://codepen.io/alanvkarlik/pen/OJRdyRR

这是我想要实现的目标:https://i.imgur.com/7CR7sW8.jpg

HTML:

<div class="container">
<div class="column"><img src="https://f4.bcbits.com/img/a0846297992_16.jpg"></div>
<div class="column">IMG 2</div>
<div class="column">IMG 3</div>
<div class="column">IMG 4</div>
</div>

CSS:

html, body {
  height: 100%;
  margin: 0;
}
.container {
  height: 100%;
}
.column {
  height: 25%;  
  display: flex;
  justify-content: center;
  align-items: center;
}

@media screen and (min-width: 600px) {
  .container {
    display: flex;
    flex-wrap: wrap;
  }
  .column {
    flex-basis: 50%;
    height: 50%;
  }
}


/* general styles */
body {
  font-family: 'Lato', sans-serif;
  font-size: 1.3em;
  color: #ccc;
  background: #000;
  /*margin-bottom: 70px;*/
}

.column {
  padding: 15px;
  /*border: 1px solid #666;*/
  box-sizing: border-box;
}

.column:nth-child(1) {
  background: #5c9;
}
.column:nth-child(2) {
  background: #fb0;
}
.column:nth-child(3) {
  background: #39f;
}
.column:nth-child(4) {
  background: #f33;
}

main {
  max-width: 1200px;
  margin: 0 auto;
}

h1,
h2 {
  text-align: center;
}

不确定这是否是您想要实现的目标,但我会通过在图像上设置 object-fit: contain 来实现。我还稍微改变了你定义 div 的方式 (css)。

body {
  margin: 0;
}

.container {
  display: flex;
  flex-wrap: wrap;
}

.column {
  height: 50vh;  
  width: 50vw;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 15px;
  box-sizing: border-box;
}

.column img {
  height: 100%;
  width: 100%;
  object-fit: contain;
}

.column:nth-child(1) {
  background: #5c9;
}

.column:nth-child(2) {
  background: #fb0;
}

.column:nth-child(3) {
  background: #39f;
}

.column:nth-child(4) {
  background: #f33;
}
<div class="container">
  <div class="column"><img src="https://f4.bcbits.com/img/a0846297992_16.jpg"></div>
  <div class="column">IMG 2</div>
  <div class="column">IMG 3</div>
  <div class="column">IMG 4</div>
</div>

我想这就是您要找的。

您的列 img class 设置为 100% 宽度和高度。我将高度设置为 50%,将宽度设置为自动,以便它检测图像大小并正常显示。 我只是删除了“object-fit: cover;”。

如果您将 .colum img {} 更改为以下内容,它应该正是您想要的。

.column img {
  height: 50%;
  width: auto;
 }

我添加了一个片段,以便您可以看到它的工作原理。

body {
  margin: 0;
}

.container {
  display: flex;
  flex-wrap: wrap;
}

.column {
  height: 50vh;  
  width: 50vw;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 15px;
  box-sizing: border-box;
}

.column img {
  height: 50%;
  width: auto;
}

.column:nth-child(1) {
  background: #5c9;
}

.column:nth-child(2) {
  background: #fb0;
}

.column:nth-child(3) {
  background: #39f;
}

.column:nth-child(4) {
  background: #f33;
}
<div class="container">
<div class="column"><img src="https://f4.bcbits.com/img/a0846297992_16.jpg"></div>
<div class="column">IMG 2</div>
<div class="column">IMG 3</div>
<div class="column">IMG 4</div>
</div>