我想知道为什么flex div中的8个内联块元素被挤压并且不遵守它们的设置(宽度:50px)。
http://codepen.io/anon/pen/YXJOwe?editors=110
<style>
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;
}
</style>
<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>
答案 0 :(得分:5)
这里的关键是添加“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>
答案 1 :(得分:0)
因为它的宽度已设定。只需删除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;
}
&#13;
<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>
&#13;
如果flex div
所具有的空间足以容纳所有孩子,则此方法有效。否则,div
会适应大小,使孩子变小。