IE中嵌套的flexbox高度问题

时间:2017-01-27 14:34:58

标签: html css css3 flexbox

我已经嵌入了一些带有一些图像的flexbox,它在Chrome中看起来很不错,但在IE中你可以看到flex-item-wrapper上的边框没有与图像的底部齐平。顺便说一句,在布局中,我有时会有几张flex-row有很多照片。

.flex-list {
  display: flex;
  flex-direction: column;
}
.flex-row {
  display: flex;
}
.flex-item-wrapper {
  width: 100%;
  border: 1px solid green;
}
.flex-item {
  height: 100%;
  width: 100%;
  border: 1px solid blue;
}
.picture {
  width: 100%;
}
<div class="flex-list">
  <div class="flex-row">
    <div class="flex-item-wrapper">
      <div class="flex-item">
        <a href='#'>
          <img class="picture" src="http://www.picgifs.com/clip-art/cartoons/super-mario/clip-art-super-mario-832109.jpg" alt="">
        </a>
      </div>
    </div>
    <div class="flex-item-wrapper"></div>
    <div class="flex-item-wrapper"></div>
    <div class="flex-item-wrapper"></div>
  </div>
</div>

2 个答案:

答案 0 :(得分:4)

这似乎有效:

.flex-row {
  display: flex;
  flex: 0 0 auto; /*added*/
}

.flex-row {
  display: flex;
  height: 100%; /*added*/
}

参见简化演示:

&#13;
&#13;
.flex-list {
  display: flex;
  flex-direction: column;
}
.flex-row {
  display: flex;
  flex: 0 0 auto;
}
.flex-item {
  flex: 1;
  border: 1px solid blue;
}
.picture {
  width: 100%;
  height: auto;
}
&#13;
<div class="flex-list">
  <div class="flex-row">
    <div class="flex-item">
      <a href='#'>
        <img class="picture" src="http://www.picgifs.com/clip-art/cartoons/super-mario/clip-art-super-mario-832109.jpg" alt="">
      </a>
    </div>
    <div class="flex-item"></div>
    <div class="flex-item"></div>
    <div class="flex-item"></div>
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

问题似乎是由于嵌套flexbox。这解决了它:

.flex-row {
  width: 100%;
  align-self: flex-start;
}

.flex-list {
  display: flex;
  flex-direction: column;
}
.flex-row {
  display: flex;
  width: 100%;
  align-self: flex-start;
}
.flex-item-wrapper {
  width: 100%;
  border: 1px solid green;
}
.flex-item {
  height: 100%;
  width: 100%;
  border: 1px solid blue;
}
.picture {
  width: 100%;
}
<div>
  <div class="flex-list">
    <div class="flex-row">
      <div class="flex-item-wrapper">
        <div class="flex-item">
          <a href='#'>
            <img class="picture" src="http://www.picgifs.com/clip-art/cartoons/super-mario/clip-art-super-mario-832109.jpg" alt="">
          </a>
        </div>
      </div>
      <div class="flex-item-wrapper"></div>
      <div class="flex-item-wrapper"></div>
      <div class="flex-item-wrapper"></div>
    </div>
  </div>
  <div></div>
</div>