如何使第一个网格项目跨度100%?

Al-*_*-76 3 html css css3 css-grid

我有以下桌面,它创建4个相等的列,全部为25%.

.footer-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
Run Code Online (Sandbox Code Playgroud)
<div class="footer-inner">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
  <div>Four</div>
</div>
Run Code Online (Sandbox Code Playgroud)

但是,如何在媒体查询中调整这些大小以使第一列达到100%并且其余列自然地包裹在下面,现在仍然使用CSS网格33.333%?

.footer-inner {
  display: grid;
  grid-template-columns: 100% 1fr 1fr 1fr; 
  /* AND THIS */
  grid-template-columns: 100% 33.333% 33.333% 33.333%;
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*e_D 9

将网格更改为三列,并将第一个div设置为在适当的位置跨越它们.

.footer-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.footer-inner div {
  border: 1px solid grey;
  text-align: center;
}

.footer-inner :first-child {
  grid-column: 1 / -1;
}
Run Code Online (Sandbox Code Playgroud)
<div class="footer-inner">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
  <div>Four</div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 很棒的答案,我想为任何 Magento 开发人员补充一下(是的,这有点脆弱),如果你想用 `.lib-css()` 来做到这一点,你应该使用 `grid-column-start, 1` 和 `grid-column -end, -1` 而不是 `grid-column` 简写 (2认同)

VXp*_*VXp 6

grid-column: span 3您可以使用以下设置来完成此操作:first-child

.footer-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 650px) {
  .footer-inner {
    grid-template-columns: repeat(3, 1fr);
  }
  .footer-inner > div:first-child {
    grid-column: span 3;
    border: 1px solid;
  }
}
Run Code Online (Sandbox Code Playgroud)
<div class="footer-inner">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
  <div>Four</div>
</div>
Run Code Online (Sandbox Code Playgroud)