【问题标题】:How is this possible using any CSS layout (Grid, flexbox..)这怎么可能使用任何 CSS 布局(网格、flexbox ..)
【发布时间】:2020-11-12 03:03:26
【问题描述】:

在以下布局中挣扎,有可能吗? html不固定。我添加了一些代码与 jsbin 一起使用:

https://jsbin.com/lifinogifu

Layout

<div class="container">
  <div class="item">
      <div class="item-image"></div>
      <div class="item-name"></div>
      <div class="item-meta"></div>
      <div class="item-action"></div>
  </div>
</div>

.item {
  display: flex;
  width: 100%;
  background-color: #eee;

  > * {
    height: 100px;
    border: 1px dotted #ccc;
  }
  
  &-image {
    width: 100px;
  }
  
  &-name {
    flex: 1;  
  }
  
  &-meta,
  &-action {
    width: 80px;
  }
  
}

【问题讨论】:

  • 仔细阅读,这是可能的。
  • 好的,如果可以,请帮忙看看如何?
  • 贴出你试过的代码。
  • 我添加了一些代码和一个 jsbin
  • 很好,您设法解决了问题,但是您的编辑删除了有问题的代码,使现有答案无效。我已回滚您的编辑。

标签: css flexbox css-grid


【解决方案1】:

使用网格:

要创建响应部分,您需要 2 列,第一列用于黄色,第二列用于所有其他块。在第二列中,您将创建一个包含两条线的网格,第一行将放置绿色块,第二行将放置另一个带有红色和蓝色块的网格。所以代码看起来像这样:

<style>

#yellow {
    background-color: yellow;
}

#green {
    background-color: green;
}

#red {
    background-color: red;
}

#blue {
    background-color: blue;
}

#grid1 {
    display: grid;
    grid-template-columns: 1fr 4fr;
    width: 100%;
    height: 400px;
}

#grid2 {
    display: grid;
    grid-template-columns: 1fr;
}

#grid3 {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

</style>

<div id="grid1">
    <div id="yellow"></div>
    <div id="grid2">
        <div id="green"></div>
        <div id="grid3">
            <div id="red"></div>
            <div id="blue"></div>
        </div>
    </div>
</div>

对于桌面部分,您必须创建一个媒体查询来更改网格的列以实现正确的设计。实际上,您只需更改 grid2 的布局即可实现此目的,因此一切都将并排:

#grid2 {
    grid-template-columns: 1fr 1fr;
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
  • 2020-06-29
  • 2019-04-01
  • 1970-01-01
相关资源
最近更新 更多