【问题标题】:Block elements inside a flex container get squeezed. But why?弹性容器内的块元素被挤压。但为什么?
【发布时间】:2015-10-16 19:46:32
【问题描述】:

我想知道为什么 flex div 中的 8 个 inline-block 元素会被挤压并且不符合它们的设置 (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>

【问题讨论】:

    标签: html css width flexbox


    【解决方案1】:

    这里的关键是添加“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>

    http://jsfiddle.net/zogybegu/

    【讨论】:

      【解决方案2】:

      因为它的宽度是固定的。只需删除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 的空间足够大,可以容纳所有孩子,则此方法有效。否则div 会适应大小,使孩子变小。

      【讨论】:

        猜你喜欢
        • 2017-04-24
        • 2023-03-18
        • 2015-08-19
        • 2018-03-10
        • 2016-10-20
        • 2014-06-12
        • 2019-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多