Dash.js播放HLS视频时,视频封面无法居中显示怎么办?
用Dash.js播放HLS视频时,我给视频加了个封面图,但无论怎么调整CSS都无法让封面在不同分辨率下居中显示。我尝试过绝对定位配合transform,但加载视频时封面会突然跳到左上角。
这是我的CSS代码:
.video-container {
position: relative;
width: 100%;
}
.video-cover {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
max-width: 800px;
}
控制台没有报错,但实际效果就是无法保持居中,特别是手机横屏时偏移更严重。有没有遇到过类似情况?
.video-container没有高度,top: 50%找不到基准。两个方案:
方案一:flex布局(最简单)
关键是
.video-cover直接撑满整个容器,然后用 flex 居中内容,这样不管容器尺寸怎么变都不会跳。方案二:保持 absolute + transform(如果你需要封面比视频小)
用 padding-bottom 保持宽高比,封面用 flex 居中,这样横屏也不会歪。
你之前用 transform 跳到左上角,基本就是容器没高度导致的,top: 50% 计算出来是 0。直接改用 flex 完事。
试试这个CSS,把
.video-container改成这样:别折腾绝对定位了,flex才是正解,手机横屏也能稳稳居中。