弹性容器内的块元素被挤压。但为什么?
Block elements inside a flex container get squeezed. But why?
我想知道为什么 flex div 中的 8 个内联块元素会被挤压并且不遵守它们的设置 (width: 50px
)。
div {
display: flex;
justify-content: center;
border: 1px solid red;
width: 150px;
overflow: auto;
}
a {
display: inline-block;
background: orange;
width: 50px;
height: 50px;
margin: 10px;
}
<div>
<a>1</a><a>2</a><a>3</a><a>4</a><a>5</a><a>6</a><a>7</a><a>8</a>
</div>
这里的关键是添加 "flex-shrink: 0;" 和删除 "justify-content: center;"
div
{
display: flex;
border: 1px solid red;
width: 150px;
overflow: auto;
}
a
{
display: inline-block;
background:orange;
width: 50px;
height: 50px;
margin: 10px;
flex-shrink: 0;
}
<div>
<a>1</a><a>2</a><a>3</a><a>4</a><a>5</a><a>6</a><a>7</a><a>8</a>
</div>
因为它的宽度是设置好的。只需删除 width: 150px;
.
div {
display: flex;
justify-content: center;
border: 1px solid red;
overflow: auto;
}
a {
display: inline-block;
background:orange;
width: 50px;
height: 50px;
margin: 10px;
}
<div>
<a>1</a><a>2</a><a>3</a><a>4</a><a>5</a><a>6</a><a>7</a><a>8</a>
</div>
如果 flex div
的 space 对所有 children 来说足够大,则此方法有效。否则 div
适应大小,使 children 变小。
我想知道为什么 flex div 中的 8 个内联块元素会被挤压并且不遵守它们的设置 (width: 50px
)。
div {
display: flex;
justify-content: center;
border: 1px solid red;
width: 150px;
overflow: auto;
}
a {
display: inline-block;
background: orange;
width: 50px;
height: 50px;
margin: 10px;
}
<div>
<a>1</a><a>2</a><a>3</a><a>4</a><a>5</a><a>6</a><a>7</a><a>8</a>
</div>
这里的关键是添加 "flex-shrink: 0;" 和删除 "justify-content: center;"
div
{
display: flex;
border: 1px solid red;
width: 150px;
overflow: auto;
}
a
{
display: inline-block;
background:orange;
width: 50px;
height: 50px;
margin: 10px;
flex-shrink: 0;
}
<div>
<a>1</a><a>2</a><a>3</a><a>4</a><a>5</a><a>6</a><a>7</a><a>8</a>
</div>
因为它的宽度是设置好的。只需删除 width: 150px;
.
div {
display: flex;
justify-content: center;
border: 1px solid red;
overflow: auto;
}
a {
display: inline-block;
background:orange;
width: 50px;
height: 50px;
margin: 10px;
}
<div>
<a>1</a><a>2</a><a>3</a><a>4</a><a>5</a><a>6</a><a>7</a><a>8</a>
</div>
如果 flex div
的 space 对所有 children 来说足够大,则此方法有效。否则 div
适应大小,使 children 变小。