CSS overflow-x 容器中具有百分比宽度的网格之字形布局
CSS Grid Zigzag layout with percentage width in overflow-x container
我希望在锯齿形网格布局中连续三个框,当用户向右滚动时会出现更多框。以像素为单位的盒子宽度很好,但不是百分比。是否有可能以适合父容器的百分比来适应 3 x 2 布局?
我的期望:(当我使用以像素为单位的蓝色框宽度时)
现实:(当我将蓝色框的宽度从像素更改为百分比时)
CSS:
.alpha{
overflow-x: auto;
width: 100%;
}
.bravo{
display:grid;
grid-gap:10px;
grid-template-columns: repeat;
grid-template-rows: repeat(2, auto);
grid-auto-flow: column;
}
.charlie{
color: white;
background: blue;
height: 100px;
width: 300px;
}
HTML
<div class="alpha">
<div class="bravo">
<div class="charlie">
1
</div>
<div class="charlie">
2
</div>
<div class="charlie">
3
</div>
<div class="charlie">
4
</div>
<div class="charlie">
5
</div>
<div class="charlie">
6
</div>
<div class="charlie">
7
</div>
<div class="charlie">
8
</div>
<div class="charlie">
9
</div>
<div class="charlie">
10
</div>
</div>
</div>
您需要将列宽设置为等于 33%
并且您还必须考虑间隙:
.alpha {
overflow-x: auto;
}
.bravo {
display: grid;
grid-gap: 10px;
grid-template-rows: repeat(2, auto);
grid-auto-columns:calc((100% - 2*10px)/3); /* added this */
grid-auto-flow: column;
}
.charlie {
color: white;
background: blue;
height: 100px;
}
<div class="alpha">
<div class="bravo">
<div class="charlie">
1
</div>
<div class="charlie">
2
</div>
<div class="charlie">
3
</div>
<div class="charlie">
4
</div>
<div class="charlie">
5
</div>
<div class="charlie">
6
</div>
<div class="charlie">
7
</div>
<div class="charlie">
8
</div>
<div class="charlie">
9
</div>
<div class="charlie">
10
</div>
</div>
</div>
我希望在锯齿形网格布局中连续三个框,当用户向右滚动时会出现更多框。以像素为单位的盒子宽度很好,但不是百分比。是否有可能以适合父容器的百分比来适应 3 x 2 布局?
我的期望:(当我使用以像素为单位的蓝色框宽度时)
现实:(当我将蓝色框的宽度从像素更改为百分比时)
CSS:
.alpha{
overflow-x: auto;
width: 100%;
}
.bravo{
display:grid;
grid-gap:10px;
grid-template-columns: repeat;
grid-template-rows: repeat(2, auto);
grid-auto-flow: column;
}
.charlie{
color: white;
background: blue;
height: 100px;
width: 300px;
}
HTML
<div class="alpha">
<div class="bravo">
<div class="charlie">
1
</div>
<div class="charlie">
2
</div>
<div class="charlie">
3
</div>
<div class="charlie">
4
</div>
<div class="charlie">
5
</div>
<div class="charlie">
6
</div>
<div class="charlie">
7
</div>
<div class="charlie">
8
</div>
<div class="charlie">
9
</div>
<div class="charlie">
10
</div>
</div>
</div>
您需要将列宽设置为等于 33%
并且您还必须考虑间隙:
.alpha {
overflow-x: auto;
}
.bravo {
display: grid;
grid-gap: 10px;
grid-template-rows: repeat(2, auto);
grid-auto-columns:calc((100% - 2*10px)/3); /* added this */
grid-auto-flow: column;
}
.charlie {
color: white;
background: blue;
height: 100px;
}
<div class="alpha">
<div class="bravo">
<div class="charlie">
1
</div>
<div class="charlie">
2
</div>
<div class="charlie">
3
</div>
<div class="charlie">
4
</div>
<div class="charlie">
5
</div>
<div class="charlie">
6
</div>
<div class="charlie">
7
</div>
<div class="charlie">
8
</div>
<div class="charlie">
9
</div>
<div class="charlie">
10
</div>
</div>
</div>