【发布时间】:2020-12-05 15:23:11
【问题描述】:
我用物品排成一行。每个项目都包含一个标题、图像和按钮。图像保持其纵横比。 我不明白为什么 wrapper 会添加空格。
沙盒: https://codepen.io/krosert/pen/QWNNVxg
现在结果:
预期结果:
代码:
<div class="panel">
<div class="item">
<span class="title">first item</span>
<img src="https://i.ibb.co/JQMJ3BW/2311f3c1-2802-417f-9b7e-2147f066e260.jpg">
<div class="btns">
<button>1</button>
<button>2</button>
<button>3</button>
</div>
</div>
<div class="item">
<span class="title">second item</span>
<img src="https://i.ibb.co/wMyyz1n/934tvi5uykv2.jpg">
<div class="btns">
<button>1</button>
<button>2</button>
<button>3</button>
</div>
</div>
</div>
.panel{
position: fixed;
background-color: #685;
top: 30px;
height: 200px;
display: flex;
width: 100%;
}
.item{
margin: 6px;
border: 2px solid black;
background-color: #553;
display: flex;
flex-direction: column;
align-items: flex-start;
box-shadow: 0 0 5px;
max-width: 300px;
}
img {
max-height: 100%;
max-width: 100%;
height: auto;
width: auto;
min-height: 0;
min-width: 0;
}
【问题讨论】:
-
flex-direction: column;这将关心高度,并让宽度成为变量 chrome 解决了这个问题,因为它重新计算 FF 并不是因为它可能导致无限循环,问题是这三个中的哪一个元素应该定义.item的宽度?因为现在它是最大的项目,即调整大小之前的图像,为什么还有剩余空间 -
定义宽度 .item 应该是最大宽度(标题或图像或 btns)。我明白你在说什么。图像缩小后如何强制计算宽度 .item?
-
它不能是最大图像,因为在这种情况下浏览器只会考虑第一个尺寸,你必须在使用它们之前自己调整图像大小,并且你不能在 FF 中强制计算,在 chrome如果需要,您可以使用动画来完成
-
1) mb 如果在img属性中设置原始尺寸宽度\高度可以吗?它可以帮助浏览器正确计算 for .item 吗? 2) 你能否修复我在 chrome 中工作的示例('如果需要,你可以使用动画来完成 chrome')
-
它在 Windows Chrome 83(64 位)中对我来说已经很好了