【问题标题】:css flex-box wrap but avoid regioncss flex-box 包装但避免区域
【发布时间】:2019-04-08 16:39:42
【问题描述】:

我有一个使用 flex 并包装项目的 div...

#container
{
    display: flex;
    flex-wrap: wrap;
}

当项目到达容器末端时,它们会换行到下一行。我需要一个项目也将环绕的区域。这是我想要的一个例子......

项目(灰色)到达区域(红色)时会包裹下一行。

我想知道这是否可以使用 flex-box 来实现。

谢谢。

【问题讨论】:

  • 你能说得更具体点吗?
  • 还有哪些信息会有所帮助?

标签: html css flexbox


【解决方案1】:

查看这个使用CSS Grid Layout 的概念验证。您可以跳过 grid 中的一个区域,方法是使用 empty 显式的 pseudo 元素 放置以创建包裹元素在其周围流动的效果。

请看下面的演示:

.grid {
  display: grid;
  grid-gap: 10px;
  grid-template-columns: repeat(6, [col-start] 1fr);
}

.grid>* {
  background-color: green;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.grid:after {
  content: '';
  grid-row: 1; /* row 1 */
  grid-column: 4/7; /* skip columns 4 to 6 */
  border: 1px dashed #ddd;
}
<div class="grid">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
  <div>10</div>
  <div>11</div>
</div>

【讨论】:

  • 这是一个很好的解决方案,但是使用 flex-box 可以让 div 的大小都不同,并且不需要与网格对齐。
  • 这里的 div 也可以是 不同的大小...也许您正在寻找 masonary 布局...无论如何flexbox你将无法跨越多行就像您提供的示例图像中跨越行的红色框...
猜你喜欢
  • 1970-01-01
  • 2014-07-22
  • 2015-02-14
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
相关资源
最近更新 更多