提问人:daggett 提问时间:11/13/2023 更新时间:11/13/2023 访问量:35
弯曲拉伸项目忽略纵横比
Aspect ratio is ignored with flex stretching items
问:
如果我在设置了 1:1 纵横比的 flex 容器内有一个项目,并且有意将项目高度拉伸到其他 flex 项目的高度 - 它会忽略设置的纵横比。
<div style="display: flex;">
<div style="aspect-ratio: 1; background: blue">1:1</div>
<h1>Blue box should have 1:1 aspect ratio</h1>
</div>
我尝试设置并手动覆盖高度,但我希望高度由 flex stretch 属性设置。width: min-content
答:
1赞
Dean Van Greunen
11/13/2023
#1
解决方案 1
如果要保持蓝色框的 1:1 纵横比,同时允许 flex 容器拉伸其高度,则可以将 flex 属性与固定宽度一起设置,或者在框上使用 min-width 属性。
<div style="display: flex;">
<div style="flex: 1; aspect-ratio: 1; background: blue;">1:1</div>
<h1>Blue box should have 1:1 aspect ratio</h1>
</div>
解决方案 2
设置 min-width: 0 允许在必要时缩小框以保持纵横比。
<div style="display: flex;">
<div style="min-width: 0; aspect-ratio: 1; background: blue;">1:1</div>
<h1>Blue box should have 1:1 aspect ratio</h1>
</div>
评论
1赞
daggett
11/13/2023
这些都是不错的解决方案,但我真正想要的是其他 flex 项目设置的高度(在本例中为标题),然后使用纵横比来计算宽度。
0赞
Dean Van Greunen
11/13/2023
@daggett我建议你使用javascript来实现这一点。
1赞
daggett
11/13/2023
是的,很遗憾 CSS 规范不支持这种边缘情况
1赞
Dean Van Greunen
11/13/2023
是的,您可以通过 W3C 向 CSS3 的 RFC 提交支持请求
评论
h1