首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当网格项跨越多列时,进入单列布局。

当网格项跨越多列时,进入单列布局。
EN

Stack Overflow用户
提问于 2018-02-25 14:09:54
回答 1查看 1.1K关注 0票数 5

使用时:

代码语言:javascript
复制
grid-template-columns: repeat(auto-fit, minmax(*size*, 1fr));

在网格内部,一切看起来都很完美。它创造了尽可能多的瓷砖可以容纳在这个空间。

当我向网格项添加一个grid-column: span 2时,一切正常工作,直到只有足够的空间容纳一个项为止。

因为有了span 2,网格永远不会分解成一个列,并且创建一个具有以下项的难以置信的小列,并且从不包装。

如果我拿出span 2,它的包装就完美了。

如果可能的话,我不希望使用媒体查询来处理这种行为。

有人知道为什么会发生这种事吗?

下面是行为的代码:https://codepen.io/anoblet/pen/BYOeQM

代码语言:javascript
复制
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
}

.span-2 {
  grid-column: span 2;
}

.grid-auto {
  background: red;
}

.grid-900 {
  max-width: 850px;
  background: blue;
}
代码语言:javascript
复制
<div class="grid grid-auto">
  <div>1</div>
  <div>2</div>
  <div class="span-2">3</div>
  <div>4</div>
  <div>5</div>
</div>
<div class="grid grid-900">
  <div>1</div>
  <div>2</div>
  <div class="span-2">3</div>
  <div>4</div>
  <div>5</div>
</div>

如果调整窗口的大小,两个网格都会显示该行为,但第二个网格将立即显示。

谢谢你的帮助:)

EN

回答 1

Stack Overflow用户

发布于 2018-02-25 16:50:21

有人知道为什么会发生这种事吗?

因为当您对一个项设置grid-column: span 2时,它会强制该项跨越两列,而不管屏幕大小如何。在您的代码中,此项没有理由跨越一列。

当屏幕调整大小时,您需要告诉项目从两列切换到一列。为此目的存在媒体查询。

revised codepen

代码语言:javascript
复制
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
  background: red;
}

.span-2 {
  grid-column: span 2;
}

@media ( max-width: 500px ) {
  .grid   { grid-template-columns: 1fr; }
  .span-2 { grid-column: span 1;        }
}
代码语言:javascript
复制
<div class="grid">
  <div>1</div>
  <div>2</div>
  <div class="span-2">3</div>
  <div>4</div>
  <div>5</div>
</div>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48974380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档