css - Firefox 无法在 100% 高度的 div 中正确包装包含的图像
问题描述
我有一个响应式网格显示图像和悬停时显示的其他一些内容。网格是基于 flex 的(尽管我确实尝试浮动元素以查看是否是 flex 的一些问题并且问题仍然存在)并且是流畅的。每个网格图块是父宽度的 20%,使用 height:0 和 padding-bottom:20% 创建 1:1 纵横比内容由绝对定位的 div 框住,所有角都放置在父级的 0 处(这已完成创建需要一些额外伪元素的特定边框)。图像是方形的,它们的高度设置为父级的 100%,并设置为自动。一切在 Chrome 和 Safari 中看起来和工作正常,但在 Firefox 中,包含图像的 div 不会换行到图像宽度,就好像它无法正确计算它的宽度一样,因此我的额外内容是'
这是代码的示例。在 chrome 中你可以看到想要的效果,在 FF 中你可以看到问题:
$('.border').hover(function() {
$('.opened').removeClass('opened');
$(this).addClass('opened');
});
body {
font: 12px sans-serif;
}
.row {
display: flex;
}
.border {
flex-basis: 20%;
flex-grow: 0;
transition: flex-grow 400ms;
height: 0;
padding-bottom: 20%;
background: green;
border: 1px solid #fff;
position: relative;
}
.opened {
flex-grow: 1;
}
.inner {
position: absolute;
top: 5px;
bottom: 5px;
left: 5px;
right: 5px;
}
.article {
height: 100%;
position: relative;
background: pink;
display: flex;
flex-wrap: wrap;
}
.image-holder {
display: block;
height: 100%;
}
.image-holder img {
height: 100%;
width: auto;
display: block;
}
.article-info {
flex-basis: 50%;
overflow: hidden;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
<div class="border">
<div class="inner">
<div class="article">
<div class="image-holder">
<img src="https://i.imgur.com/upieVY9.png">
</div>
<div class="article-info">
<p>
There is some information about the item here, it can be longer.
</p>
<p>
Sometimes even several paragraphs that will cut off.
</p>
</div>
</div>
</div>
</div>
<div class="border">
<div class="inner">
<div class="article">
<div class="image-holder">
<img src="https://i.imgur.com/upieVY9.png">
</div>
<div class="article-info">
<p>
There is some information about the item here.
</p>
</div>
</div>
</div>
</div>
<div class="border">
<div class="inner">
<div class="article">
<div class="image-holder">
<img src="https://i.imgur.com/upieVY9.png">
</div>
<div class="article-info">
<p>
There is some information about the item here.
</p>
</div>
</div>
</div>
</div>
<div class="border opened">
<div class="inner">
<div class="article">
<div class="image-holder">
<img src="https://i.imgur.com/upieVY9.png">
</div>
<div class="article-info">
<p>
There is some information about the item here
</p>
</div>
</div>
</div>
</div>
</div>
解决方案
推荐阅读
- java - 如何启动嵌入在我的 Java 应用程序中的 Apache Drill
- spring-boot - Thymeleaf th:阻塞条件
- dataframe - 在 Julia 中使用括号与点表示法访问 Dataframe 列
- java - 几天来我一直在这个问题上陷入困境线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常
- go - 如何将函数应用于Golang中的整数输入
- wpf - 将内容应用于 UserControl 时覆盖 WPF 样式
- sql - 插入带有内连接语句的子查询的语句
- amazon-web-services - 在 AWS VPC 中为公共主机名强制 DNS 重定向
- memory - 内存分配和初始化是否在编译时和运行时分开进行?
- java - 性能:多个 Web 方法或多个 Web 服务