首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS网格-从1行,3行过渡到3行,1行

问CSS网格-从1行,3行过渡到3行,1行
EN

Stack Overflow用户
提问于 2019-09-23 17:53:20
回答 2查看 951关注 0票数 3

我正在探索CSS,看看它是否能够完全取代对我的特定用例的响应性CSS媒体查询的需求。我有以下网格容器:

代码语言:javascript
复制
.gridContainer {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    padding: 0px 15px;
    margin: 0 auto;
    grid-row-gap: 20px;
}

网格容器包含三个项,这些项最初导致大屏幕大小上的一行和三列:

​

​

当我将视口宽度缩小到三列在250 of以下时,我希望网格布局能够快速调整为三行一列的布局:

​

​

当您缩小视口宽度时,由于所选的自动放置算法,当前有一个临时布局,其中第三个项被包装到它自己所在的行中:

​

​

我想绕过这个包装,只支持最初的一行、三列布局和最后的三行、一列布局。这是可能的CSS网格仅和不使用媒体查询?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-23 18:08:44

一旦达到最小宽度,您就可以使用中介,并将容器转换为网格:(代码选项,因为您只提供了很少的信息)

思想的基本例子

​

代码语言:javascript
复制
div {
  padding: 1em;
  margin: 1em;
  border: dotted tomato;
}

@media (min-width: 780px) {
  body {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    padding: 0px 15px;
    margin: 0 auto;
    grid-row-gap: 20px;
  }
}
代码语言:javascript
复制
<div>lorem</div>
<div>lorem</div>
<div>lorem</div>

​

您可以在全页模式下播放代码段,并调整浏览器的大小以检查行为。

票数 1
EN

Stack Overflow用户

发布于 2019-09-23 18:07:54

自动填充或自动填充函数使用最大列数填充可用空间。

您可以在媒体表达式的帮助下解决这个问题,以所需的分辨率更改列数。

结果

​

代码语言:javascript
复制
.grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(250px, 1fr));
  padding: 0px 15px;
  margin: 0 auto;
  grid-row-gap: 20px;
  list-style: none;
}

.item {
  border: 1px dashed red;
}

@media (max-width: 800px) {
  .grid {
    grid-template-columns: 1fr;
  }
}
代码语言:javascript
复制
<ul class="grid">
  <li class="item">
    <h3>Lorem, ipsum dolor.</h3>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto nihil neque quas corrupti eaque in iure totam reiciendis praesentium. Sapiente impedit magni consequatur modi error eaque vel tempore consequuntur saepe.</p>
  </li>
  <li class="item">
    <h3>Lorem, ipsum dolor.</h3>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto nihil neque quas corrupti eaque in iure totam reiciendis praesentium. Sapiente impedit magni consequatur modi error eaque vel tempore consequuntur saepe.</p>
  </li>
  <li class="item">
    <h3>Lorem, ipsum dolor.</h3>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto nihil neque quas corrupti eaque in iure totam reiciendis praesentium. Sapiente impedit magni consequatur modi error eaque vel tempore consequuntur saepe.</p>
  </li>
</ul>

​

和CodePen上相同的代码

​

​

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

https://stackoverflow.com/questions/58067739

复制
相关文章

相似问题

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