新闻项目以 CSS 位置堆叠在一起

News items stack in top of each other with CSS position

我正在尝试创建一个包含新闻项目的网页,其中新闻图像、图像叠加、标题和文本都在彼此的顶部。但是,对于我的代码,如果我尝试在复制所有内容的下方继续创建下一条新闻,它将堆叠在第一条新闻的顶部。那么我怎样才能让下一个类似“News2”的图片+图片+标题+文字组合出现在“News1”下面而不是重叠呢?

我可以使用“top: xxx px;”强制关闭 News2 项目,但当页面中有很多新闻项目时,这似乎是一个糟糕的解决方案。

HTML:

<div class="NewsImage1 NewsImageBig"><img src="image.jpg" class="NewsImageBig"></div>
<div class="NewsImageOverlay1 NewsImageBig"><img src="Gfx/imageoverlay.png" class="NewsImageBig"></div>
<div class="NewsImageHeadline1">News headline goes here</div>
<div class="NewsImageText1">News text goes here</div>

CSS:

.NewsImageBig {
    position: absolute;
    max-width: 850px;
    max-height: 283px;
    border-radius: 10px;
    margin: 0px 12px;
}
.News1 {
    position: relative;
}
.NewsImage1 {
    z-index: 0;
}   
.NewsImageOverlay1 {
    z-index: 1;
    opacity: 0.9;
}
.NewsImageHeadline1 {
    position: relative;
    top: 215px;
    margin: 0px 45px;
    font-size: 22px;
    z-index: 2;
}
.NewsImageText1 {
    position: relative;
    top: 220px;
    margin: 0px 45px;
    font-size: 14px;
    z-index: 3;
}

此处仅提及代码且我尝试复制新闻项时的网页示例。

关于 absoluterelative 关系的示例。这里.shadow 和.title 都是position: absolute,只有当设置为position: relative 容器时才保持正常流

.news {
  display: inline-block;
  position: relative;
  background-size: cover;
  width: 40%;
  padding-bottom: 25%;
  border-radius: 10px;
  overflow: hidden;
  margin: 5px;
  box-shadow: 0 1px 7px rgba(0,0,0,.2);
}

.news .shadow {
  position: absolute;
  z-index: 1;
  top:0; left: 0; right: 0; bottom: 0;
  background: -webkit-linear-gradient(top, rgba(0,0,0,0) 50%, rgba(0,0,0,1) 100%);
}
.news .title {
  color: #FFF;
  position: absolute;
  z-index: 2;
  bottom: 5%; left: 5%; right: 5%;
}
.news .title h2, .news .title p {
  margin: 5px 0;
}
  <div class="news" style="background-image: url(https://picsum.photos/200);">
    <div class="shadow"></div>
    <div class="title">
      <h2>Title</h2>
      <p>lorem ipsum dolor sit emet</p>    
    </div>
  </div>

  <div class="news" style="background-image: url(https://picsum.photos/200);">
    <div class="shadow"></div>
    <div class="title">
      <h2>Title</h2>
      <p>lorem ipsum dolor sit emet</p>    
    </div>
  </div>