【发布时间】:2018-10-04 12:59:32
【问题描述】:
我需要为仪表板设置不同的布局。如果项目超出以适合可见视口,我只需要布局容器的水平滚动。我遇到了具有以下要求的布局。
我使用 CSS-flexbox 创建了布局样式,但无法获得水平滚动,只能获得垂直滚动。
html,
body {
height: 100%;
margin: 0px;
}
* {
box-sizing: border-box;
}
.flexbox {
height: 100%;
width: 100%;
display: flex;
flex-wrap: wrap;
overflow-x: auto;
background-color: lightgreen;
}
.item {
min-width: 50%;
min-height: 50%;
flex: 1 0 0;
border: 1px solid;
}
.item:nth-child(odd) {
background-color: lightblue;
}
.item:nth-child(even) {
background-color: lightslategray;
}
.item1 {
min-width: 100%;
}
<div class="flexbox">
<div class="item item1">1</div>
<div class="item item2">2</div>
<div class="item item3">3</div>
<div class="item item1">4</div>
<div class="item item2">5</div>
<div class="item item3">6</div>
</div>
https://codepen.io/TechnoGeek/pen/GdZodo
所以,我想,CSS 网格可以帮助解决这个问题。所以我尝试了一些但不明白如何获得它。
html,
body {
height: 100%;
margin: 0px;
}
.grid {
display: grid;
height: 100%;
background-color: lightgreen;
grid-template-columns: repeat(2, 1fr);
grid-template-row: repeat(2, 1fr);
grid-gap: 5px;
/* grid-auto-flow: column; */
}
.item {
border: 1px solid;
}
.item:nth-child(odd) {
background-color: lightblue;
}
.item:nth-child(even) {
background-color: lightslategray;
}
.item1 {
grid-column: 1/3;
}
<div class="grid">
<div class="item item1">1</div>
<div class="item item2">2</div>
<div class="item item3">3</div>
<div class="item item1">4</div>
<div class="item item2">5</div>
<div class="item item3">6</div>
</div>
https://codepen.io/TechnoGeek/pen/BxKoaG
在网格布局中,项目正在缩小以适应布局。
容器内的项目数量是动态的。无论项目计数如何,布局都必须维护每个可见组的结构。
有人可以帮助如何实现这一目标吗?
提前致谢。
【问题讨论】:
-
试试overflow-x:scroll...可能有帮助
-
它不工作,你能检查一下代码笔吗?
-
对于水平滚动,您需要在父div中添加任何特定的宽度。
-
@KhushbuVaghela,我在问题中插入了代码 sn-ps。你说的我已经加了。这没有用。我猜你正在使用
display: block寻址容器,但我使用的是display: flex or grid;如果我不明白你所说的,你可以发送代码 sn-p 吗?