使网格响应

时间:2019-06-11 08:42:30

标签: html css

关于如何使此网格响应的任何想法?

这是我的CSS:

body {
  margin: 40px;
}

.wrapper {
    display: grid;
    grid-gap: 10px;
    grid-template-columns: 100px 100px 100px;
    background-color: #fff;
    color: #444;
    }

.box {
    background-color: #444;
    color: #fff;
    border-radius: 5px;
    padding: 20px;
    font-size: 150%;
}

.a {
    grid-column: 1 / 3;
    grid-row: 1;
}
.b {
    grid-column: 3 ;
    grid-row: 1 / 3;
}
.c {
    grid-column: 1 ;
    grid-row: 2 ;
}
.d {
    grid-column: 2;
    grid-row: 2;
}

HTML

<div class="wrapper">
  <div class="box a">A</div>
  <div class="box b">B</div>
  <div class="box c">C</div>
  <div class="box d">D</div>
</div>

我尝试了以下代码:

@media only screen and (max-width:500px) {
   .box  {
      width: 100%;  
      margin-right: 0;
      float: none;  
      margin-bottom: 20px !important;
   }

完成此任务的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

我同意@Petra,您需要使用fr,但如果要将它们堆叠显示在移动设备上,请使用媒体查询。您也可以将显示更改为阻止。确保在初始CSS之后添加这些内容,以免被覆盖。

@media screen and (max-width: 512px) {
    .wrapper {
        grid-template-columns: 1fr;
    }
}

答案 1 :(得分:1)

.wrapper {
    display: grid;
    grid-gap: 10px;
    grid-template-columns: 1fr 1fr 1fr;
    background-color: #fff;
    color: #444;
    }
在CSS Grid Layout中,我们得到了一个新的灵活单元:Fr单元。 Fr是小数单位,1fr是可用空间的一部分。