低代码页面中,如何让自定义组件响应式布局时保持子元素比例?
在搭建低代码平台时,我用自定义组件包裹了一个图片和文字容器,想让它们在不同屏幕宽度下保持16:9的比例。尝试用以下CSS设置,但发现当父容器宽度缩小时,文字容器高度会脱离比例,甚至出现垂直滚动条:
.custom-component {
display: flex;
flex-direction: column;
aspect-ratio: 16/9;
}
.image-container {
flex: 1;
object-fit: cover;
}
.text-area {
flex: 0 0 auto;
padding: 1rem;
}
已经试过把aspect-ratio加在父容器和子元素上,也尝试过用padding-bottom hacks方法,但拖拽调整组件宽度时,文字区域总是占满剩余高度导致比例失衡。有没有更好的响应式布局方案适合低代码动态组件?
正确的做法是让一个内部的“媒体容器”来维持 16:9,文字区域脱离这个比例独立处理。可以这样调整结构:
对应的 CSS:
这样图片容器通过 padding-bottom 的百分比锁死 16:9 比例,不受父级 flex 分配影响,文字区域自然贴在下面。你在低代码平台拖拽改变宽度时,比例依然能保持住,也不会因为高度计算偏差出现意外滚动。
如果后期要支持视频或其他媒体,这套结构也能复用,维护起来更干净。