使用柔性或网格在浮动右方列出广告卡。

问题描述 投票:1回答:1

我想实现这个html结构。我试过使用flex,但不工作,因为最后的广告列是不一样的高度,并可以采取2 - 4行,我想使它响应太多,所以在调整大小卡将在下一行,如果他们没有找到足够的空间。

.ads {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    grid-column: 6 / span 2;
    grid-row: 1 / span 3;
    margin: 0;
    float: none;
}
.container {
    display: grid;
    grid-gap: 22px;
    justify-content: space-between;
}
.card {
    margin:0;
}

html5 list of cards with ads on float right

html css flexbox grid css-grid
1个回答
1
投票

好消息是 - 我们可以在一个父容器中添加广告,这是3行高度。在这里,你去

.main-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr); /* determines 7 columns with same width */
  grid-auto-rows: minmax(100px, auto); /* determines the height of the row */
  grid-column-gap: 10px;
  grid-row-gap: 10px;
}

.main-grid>div {
  background: #eee;
}

.main-grid>div.ads-grid {
  background: none;
  grid-area: 1 / 6 / 4 / 8; /* row-start / column-start / row-end / column end */
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(2, 1fr);
  grid-column-gap: 10px;
  grid-row-gap: 10px;
}

.main-grid>div.ads-grid>div {
  background: #000;
}

/* example for screens less than 460 */
@media (max-width: 460px) {
  .main-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  
  .main-grid>div.ads-grid {
    grid-area: 1 / 3 / 4 / 5;
  }  
}
<div class="main-grid">
  <div class="ads-grid">
    <div></div>
    <div></div>
  </div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

不要忘记纠正 .main-grid {grid-template-columns: repeat(7, 1fr)}.main-grid>div.ads-grid {grid-area: 1 / 6 / 4 / 8;}@media 小屏幕的宽度变化。更多关于 grid-area 此处 https:/developer.mozilla.orgen-USdocsWebCSSgrid-area。

而且没有一个 flex 当天就得到了。

© www.soinside.com 2019 - 2024. All rights reserved.