我有一個(gè)裝有包裝材料的柔性盒。如何將flexbox收縮到其內(nèi)容?我試圖解決的根本問題是將flexbox居中。這張圖片描述了我的問題:
我怎樣才能實(shí)現(xiàn)這一點(diǎn)?在純CSS中可能嗎?我事先不知道flexbox會換行到1、2還是3列。元素的寬度是已知的。高度最好是未知的,但是如果它使它變得容易得多,我可以決定一個(gè)恒定的高度。
width:min-content、width:max-content、width:fit-content和inline-flex似乎都沒有解決這個(gè)問題。
小提琴:https://jsfiddle.net/oznts5bv/
.container {
display:flex;
flex-wrap:wrap;
border:1px dashed magenta;
}
.container div {
width:100px;
height:60px;
border:1px solid black;
}
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
創(chuàng)建了一個(gè)兩個(gè)例子:用display:flex;,并顯示:網(wǎng)格;。第二種選擇可能更適合你:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
display: flex;
flex-direction: column;
align-items: center;
overflow-y: scroll;
}
.container {
display: flex;
flex-wrap: wrap;
border: 1px dashed magenta;
max-width: min(100%, 302px);
}
.container div {
width: 100px;
height: 60px;
border: 1px solid black;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
<input type="range" min="100" max="600" value="302" oninput="document.querySelectorAll('.container').forEach(el => el.style.maxWidth = 'min(100%, ' + this.value + 'px)')">
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
<br>
<div class="container grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>