css - 具有挑战性的布局——如何实现?

标签 css layout flexbox

我正在尝试创建附加布局,但遇到了困难。

enter image description here

它基于这种布局:

Layout example from not-studio.com

这个例子的主要内容是他们所有的图像都是按照精确的规范创建的,以使网格的大小交替变化。

我希望能够:
• 使用任何尺寸的图片,并将其裁剪到 overflow hidden 的包含框
• 使包含框和图像的宽度/高度在您缩小浏览器时按比例缩放。
• 如果可能,不要依赖任何插件。

到目前为止我尝试过的是:

• flex 盒子
• 花车
• 负上边距的最大/最小高度
• 使用填充和绝对定位,如此example

关于如何以最干净的方式实现这一点有什么想法吗?

最佳答案

这是您的开始。现在您可以用图像填充每个元素,添加文本等。

html, body {
  margin: 0;
  height: 100%;
}

.container {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  height: 100%;
  min-height: 500px;
}

.container .item {
  height: calc(16.6% - 20px);
  background: #eee;
  margin: 10px;
  display: flex;
  flex-direction: column;
}

.container .item:nth-child(12),
.container .item:nth-child(10),
.container .item:nth-child(7),
.container .item:nth-child(5),
.container .item:nth-child(4),
.container .item:nth-child(2) {
  height: calc(33.3% - 20px);
}

.container .item .img {
  flex: 1;
}

.container .item .txt {
  flex: 0;
  background: #fff;
  color: #900;
}
<div class="container">
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
  <div class="item">
    <div class="img">
      An image
    </div>
    <div class="txt">
      Some text
    </div>
  </div>
</div>

关于css - 具有挑战性的布局——如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465475/

相关文章:

asp.net - asp 复选框列表重复方向

html - 如何将列缩小到所有行中该列的最大宽度,例如表中的 td 宽度?

CSS - 仅定位一层深

php - Bootstrap 3 动态轮播不滑动

Android - 如何膨胀复杂的布局并添加到另一个布局?

xml - Android XML 布局 - 一个屏幕上有 4 个 ImageView

java - 如何在进度条上显示进度号?

html - flex 媒体查询 : left-right to top-down

html - 我的图像溢出了我的 flexbox 容器

html - 悬停在表格分区和表格行之间时,悬停在我的表格上不起作用