问题

我正在尝试使用CSS网格(第一次),我正在努力解决一些基本问题.

我正在构建一个包含三个组件的页脚.

   #footer-content {
    position: relative;
    margin: 0 auto;
    padding: 0 20px;
    max-width: $max-width;
    width: 100%;
    height: 100%;
    color: white;

    display: grid;
    grid-template-columns: 12% 12% 76%;
}
 

移动:

 @media only screen and (max-width: 800px) {
  #footer-content {
      grid-template-columns: 50% 50% 100%;
    }
}
 

上面代码的问题:第三个元素(宽度100%)不被推送到下一行,而是出现在屏幕上.

使用grid-template-columns: repeat(auto-fit, 50% 50% 100%);不起作用.

使用grid-template-columns: repeat(auto-fit, 50%);工作:第三个元素被推下,但只有50%的宽度而不是100%.

问题:如何使用CSS网格自动装配不同大小的三列?

  最佳答案

Grid-columns不包装,所以这个grid-template-columns: 50% 50% 100%;对于两列没有意义.您将定义TWO列并告诉第三个元素在以下行中跨越它们.

 .box {
  height: 150px;
  background: lightblue;
  border: 1px solid grey;
}

#footer-content {
  display: grid;
  grid-template-columns: 50% 50%;
  grid-gap: .25em;
}

.box:nth-child(3) {
  grid-column: span 2;
} 
 <div id="footer-content">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div> 

  相同标签的其他问题

htmlcsscss-grid