css flex正在改变图像大小

时间:2017-03-20 12:29:33

标签: html css flexbox

我使用css flex来布局一系列3行徽标。除了最后一行中的两个更深一些之外,它们都是相同的大小。

最后一行中的所有徽标都被拉伸到相同的深度,即更深的一对。

images are stretched

图像显示徽标1,3和5已垂直拉伸

我该如何阻止这一点。

    .brandLogos div{
      display:flex;
      display:-webkit-flex;	
      flex-flow: wrap;
      -webkit-flex-flow: wrap;
      -webkit-justify-content: space-between;
      justify-content: space-between; 	
    }
    
    .brandLogos img {
      border:1px solid green;
      margin-right:10px;
      margin-bottom:30px;
    }
    
    <div class="brandLogos">
     <div>
     .. 10 previous images 
      <img src="/uploads/2017/03/santander.jpg" alt="santander logo" width="134" height="70" />
      <img src="/uploads/2017/03/Sony.jpg" alt="" width="134" height="119" />
      <img src="/uploads/2017/03/talktalk.jpg" alt="talktalk logo" width="134" height="70" /> 
      <img src="/uploads/2017/03/unilever.jpg" alt="unilever logo" width="134" height="119" />
      <img src="/uploads/2017/03/Warburtonslogo.jpg" alt="warburtons logo" width="134" height="70" />
     </div>
    </div>

3 个答案:

答案 0 :(得分:3)

您需要设置align-items: center;,默认情况下为stretch

示例

.brandLogos div{
  display:flex;
  display:-webkit-flex; 
  flex-flow: wrap;
  -webkit-flex-flow: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  align-items: center;
  -webkit-align-items: center;
}

更多信息:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

答案 1 :(得分:1)

在容器上使用align-items

可能的值是:

  • flex-start
  • flex-end
  • center
  • baseline

stretch是默认设置。

供参考: http://devdocs.io/css/align-items

答案 2 :(得分:0)

您应该尝试将每个图像包装在div中,将图像设置为宽度100%。 Flexbox仅适用于div,不会延伸任何徽标。

<div class="logo-item">
<img src="/uploads/2017/03/santander.jpg" alt="santander logo" width="134" height="70" />
</div>