关于如何使此网格响应的任何想法?
这是我的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;
}
完成此任务的最佳方法是什么?
答案 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是可用空间的一部分。