css - 如何修复高度 : auto with flexbox in Firefox?

标签 css firefox flexbox height

<分区>

我在 Firefox 中遇到 flexbox 和 height: auto 的问题:

.portfolio {
  width: 100%;
  position: relative;
  overflow: visible;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  background-color: red;
}

.portfolio a {
  display: block;
  background-color: black;
  width: 30%;
  height: auto;
  padding-top: 30%;
  /* 1:1 Aspect Ratio */
  position: relative;
  /* If you want text inside of it */
  margin-bottom: 5%;
}
<div class="portfolio">
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
</div>

当 div .portfolio 有 height: auto 时,在 Firefox 中这个 div 是不可见的。 Chrome、Safari 和其他浏览器工作正常...我真的不知道如何让它工作...有人吗?

最佳答案

.portfolio 默认没有高度。在这种情况下,将高度设置为 auto 将不起作用。

height: 30%; 设置为 .portfolio 的子项将不会执行任何操作,因为其逻辑是:占据父项的 30% height,即 0。同样,如果您将 .portfolio a 的高度设置为 30vh(视口(viewport)高度的 30%),那会起作用,或者如果你能给它一个像素值

在下面的示例中,我将高度设置为 100px,但显然您可以将其更改为任何您想要的值。

.portfolio {
  width: 100%;
  height: 100px;
  position: relative;
  overflow: visible;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  background-color: red;
}

.portfolio a {
  display: block;
  background-color: black;
  width: 30%;
  height: auto;
  padding-top: 30%;
  /* 1:1 Aspect Ratio */
  position: relative;
  /* If you want text inside of it */
  margin-bottom: 5%;
}
<div class="portfolio">
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
  <a href="#">
    <div class="portfolio_item">
    </div>
  </a>
</div>

关于css - 如何修复高度 : auto with flexbox in Firefox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44953442/

相关文章:

javascript - 通过 element.innerText 插入不间断空间

html - 不影响居中 HTML 元素的伪元素

html - 显示 flex flex wrap 宽度问题

html - 只有 SCSS 的打字机效果(宽度动画)

jquery - 页脚上方的 float 社交图标

css border-style double 1px gap chrome

css - MVC 中的 DropDownList 在 IE8 中不起作用

html - 如何使多个元素的高度调整大小与调整视口(viewport)大小时发生的换行相同?

javascript - 为 Firefox 扩展设置弹出窗口标题

css - 分页后不能在 flexboxes 中工作