html - 具有多宽度列的 Flexbox 网格

标签 html css flexbox

我有一个用于显示产品的 4 列 flexbox 网格。所有产品的宽度均为 25%,但如果只有 1 个产品的宽度为 75%,我如何才能确保网格不会中断,以便我可以在一行中显示 2 个产品?

有没有一种方法,使用 flexbox,给予更宽的 75% 的网格元素优先级,以便它自动调整/移动网格以确保它不会像现在那样中断?

jsFiddle (代码在底部)

https://jsfiddle.net/kdjkc15g/

这就是我要实现的目标:

enter image description here

CSS

.grid-uniform {
  display: -ms-flex;
  display: -webkit-flex;
  display: flex;
  flex-wrap: wrap;
  margin-left: -20px;
}

.grid__item {
  width: 25%;
  display: -ms-flex;
  display: -webkit-flex;
  display: flex;
  padding-left: 20px;
  position: relative;
  margin-bottom: $gutter*2;
}

.grid__item.featured-product {
  width: 75%;
}

HTML

<div class="flex-grid">
 <div class="grid-uniform">
  <a href="#" class="product grid__item">
    <div class="flex-content">
      <div class="grid__image">
      <img src="http://via.placeholder.com/250x350">
      </div>
      <div class="grid product-info">
      <p>
      This is a title
      </p>
      </div>
    </div>
  </a>
  ...
 </div>
</div>

最佳答案

为此编辑您的 CSS。它现在完全响应。

CSS

* {box-sizing: border-box;}
.flex-grid {
  overflow: hidden;
  padding: 0;
}

.grid-uniform {
  display: flex; display: -webkit-flex;
  flex-wrap:wrap; -webkit-flex-wrap: wrap;
}

.grid__item {
  flex-grow: 1; -webkit-flex-grow: 1;
  flex-basis: 25%;
}

.grid__item.featured-product {
  flex-basis: 50%;
}

.grid__image {
  background:#f4f4f4;
  padding-top:$gutter;
  padding-bottom:$gutter;
  overflow: hidden;
}

链接到 fiddle

关于html - 具有多宽度列的 Flexbox 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46829468/

相关文章:

html - CSS - 定位多个相邻的 div 以在 2 个 div 之间堆叠一个

html - 修改bootstrap组的按钮样式

javascript - 调整大小/移动后将上传的图像应用到 Canvas 中

html - 如何将输入值修正为 2022 年 12 月?

html - 相对水平地放置物体

html - 使用 flexbox,强制列包装文本而不是导致容器从其父容器溢出

html - 焦点不起作用

javascript - 如何在同一页面上的多个实例上使用 React 组件?

html - 使用 css 设置样式的单选按钮不起作用

html - CSS 边框颜色不会改变,什么都试过了