html - 柔性盒在包裹后保持一个间隙

标签 html css flexbox

<分区>

由于某些未知原因,我在换行后的图像之间出现了这种差距

enter image description here

请在此处查看示例代码: https://codepen.io/mohammad-hossein-amri/pen/NEpzro

但是我想要的结果应该是这样的 enter image description here

我几乎尝试了所有方法,但仍然存在差距。不知何故,这个额外的空间在换行后被添加到图像之间

html, body{
    background: #fff;
    padding:0; margin:0;
    height:100%;
}

ul#flex-container{
    list-style-type: none;
    margin:0; padding: 0;
    display: flex;
    flex-wrap: wrap;
}

ul li{
    margin:0; padding: 0;
    flex-grow: 1;
    width:250px;
    color: #fff;
    font-size: 2.2em;
    position: relative;
}
ul li img{
    width: 100%;
   
}

a{
    margin: 0;
    padding: 0;
}
  <div>
    <ul id="flex-container">
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1532304887200-8db8cf689891?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=9c00cde864c07aaffc35fb0b5567015e&auto=format&fit=crop&w=500&q=60" alt="">

        </a>
      </li>
      
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1484849764956-0988adac7e5c?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=81b2754a46f790afd076f2293820c487&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1489832049190-666d39b40b7e?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=dbc2c8c1720440ddfc6618eccd9f1656&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1535966092542-fcdb19e1ea4e?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=28c12f97d6789fc30a2755b983293905&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1512238701577-f182d9ef8af7?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=c396959d87964c1b361672856f73c67b&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1512341875699-0b87026a8d5e?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=a6119da2cefcae7d1a886c7ce698abef&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
    </ul>
  </div>

更新

我看到其他人用相同的答案标记了另一个问题,但那个问题没有出现在谷歌搜索中,因为它与 flex 无关。不同的症状但相同的解决方案不会使问题相互重复!

最佳答案

设置font-size: 0;,只有空白的节点不会占用任何空间:

html, body{
    background: #fff;
    padding:0; margin:0;
    height:100%;
}

ul#flex-container{
    list-style-type: none;
    margin:0; padding: 0;
    display: flex;
    flex-wrap: wrap;
}

ul li{
    margin:0; padding: 0;
    flex-grow: 1;
    width:250px;
    color: #fff;
    font-size: 0;
    position: relative;
}
ul li img{
    width: 100%;
   
}

a{
    margin: 0;
    padding: 0;
}
  <div>
    <ul id="flex-container">
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1532304887200-8db8cf689891?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=9c00cde864c07aaffc35fb0b5567015e&auto=format&fit=crop&w=500&q=60" alt="">

        </a>
      </li>
      
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1484849764956-0988adac7e5c?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=81b2754a46f790afd076f2293820c487&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1489832049190-666d39b40b7e?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=dbc2c8c1720440ddfc6618eccd9f1656&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1535966092542-fcdb19e1ea4e?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=28c12f97d6789fc30a2755b983293905&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1512238701577-f182d9ef8af7?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=c396959d87964c1b361672856f73c67b&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
      <li>
        <a href="">
          <img src="https://images.unsplash.com/photo-1512341875699-0b87026a8d5e?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=a6119da2cefcae7d1a886c7ce698abef&auto=format&fit=crop&w=500&q=60" alt="">
        </a>
      </li>
    </ul>
  </div>

关于html - 柔性盒在包裹后保持一个间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53302274/

相关文章:

html - css 颜色转换背后的数学原理是什么?

javascript - 在多行 div 中隐藏部分溢出的文本?

html - 具有不同高度的 CSS Flexbox 2 列

html - 将上一个/下一个导航链接与 flexbox 对齐?

html - 防止带有进度条的 Flexbox 增长

html - 存在文本时在输入框中插入复选图标

html - 导致 <DIV> 内容散开?

javascript - Bootstrap 3 轮播最后显示空白幻灯片

javascript - 我的 subnav 上的填充错误

css - 使 flex 父横轴适合元素