我有一個容器,裏面有很多物品。防止在可滾動的柔性容器和垂直空間柔性物品中收縮
我想在單行上顯示它們(最終在容器上有一個水平滾動條)或者包裝成多行。
我以爲使用Flexbox佈局模塊。兩個例子在這個位置可見:
.single-line {
border: solid 1px blue;
width: 50%;
overflow-x: scroll;
}
.wrap-line {
border: solid 1px green;
width: 50%;
}
ul {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: row;
justify-content: space-around;
}
.single-line ul {
flex-wrap: nowrap;
}
.wrap-line ul {
flex-wrap: wrap;
}
li {
display: block;
width: 40px;
height: 40px;
background: gray;
text-align: center;
border: solid 1px red;
line-height: 40px;
}
<div class="single-line">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ul>
</div>
<br>
<div class="wrap-line">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ul>
</div>
最重要的代碼如下:
ul {
display: flex;
flex-direction: row;
justify-content: space-around;
}
.single-line ul {
flex-wrap: nowrap;
}
.wrap-line ul {
flex-wrap: wrap;
}
這是接近我想要什麼但有一些問題:
第一個示例收縮內部塊,因此容器不可滾動。如何解決這個問題?
在第二個示例中,如何在行之間添加垂直分隔,但不在容器的邊緣添加垂直分隔?我想過
margin-bottom
每個LI
但這不是正確的解決方案(我不能設置集裝箱固定高度)
你是否想要製作一個網格?如果這樣做,你可以使用一些小技巧:用與列寬相同的空白div填充網格(div必須等於網格將具有的最大列數-1)。檢查[這個小提琴](https://jsfiddle.net/guzgarcia/n7j7afma/1/)(調整輸出大小)。 –
這是一個有趣的解決方案,不是我需要的,但肯定有人會發現它很有用 –
請不要在同一問題中提出多個問題 – Oriol