我试图在水平线上均匀分配div。我将在屏幕的最大宽度上有3个div。当我调整浏览器大小并且它不适合3时,它将切换为两个,然后一个。我已经找到了一些如何做到这一点的例子,但没有一个按照我要找的方式做到。例如我想要的是:
全屏宽度:
[------------------------------------------]
[ [--------] [--------] [--------] ]
[ [ ] [ ] [ ] ]
[ [ ] [ ] [ ] ]
[ [--------] [--------] [--------] ]
[ ]
[ [--------] [--------] [--------] ]
[ [ ] [ ] [ ] ]
[ [ ] [ ] [ ] ]
[ [--------] [--------] [--------] ]
[------------------------------------------]
调整宽度:
[-----------------------------]
[ [--------] [--------] ]
[ [ ] [ ] ]
[ [ ] [ ] ]
[ [--------] [--------] ]
[ ]
[ [--------] [--------] ]
[ [ ] [ ] ]
[ [ ] [ ] ]
[ [--------] [--------] ]
[ ]
[ [--------] [--------] ]
[ [ ] [ ] ]
[ [ ] [ ] ]
[ [--------] [--------] ]
[-----------------------------]
请注意,div每次都以页面为中心。
我能找到的是这些示例强制div与div的边界左右,然后空间事先分布,如下例所示:
[-----------------------------]
[[--------] [--------]]
[[ ] [ ]]
[[ ] [ ]]
[[--------] [--------]]
[ ]
[[--------] [--------]]
[[ ] [ ]]
[[ ] [ ]]
[[--------] [--------]]
[ ]
[[--------] [--------]]
[[ ] [ ]]
[[ ] [ ]]
[[--------] [--------]]
[-----------------------------]
以下是我尝试过的代码示例:
答案 0 :(得分:7)
希望这是你想要做的事情!!!
<强> CSS 强>
#container {
width:100%;
text-align:center;
}
#container > div {
width: calc(100% / 6);
display: inline-block;
vertical-align: top;
border:1px solid red;
text-align:center;
margin:2%;
padding:20px;
}
<强> HTML 强>
<div id="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
中查看此操作
答案 1 :(得分:1)
现在所有现代浏览器都支持灵活内容(纯css)。如果您事先不知道元素的数量:
#container {
justify-content: flex-start | flex-end | center | space-between | space-around;
}