【问题标题】:Vertical centering of video elements in Mobile Safari iPad at "full screen"“全屏”移动 Safari iPad 中视频元素的垂直居中
【发布时间】:2015-04-17 20:37:52
【问题描述】:

我最近遇到了一些麻烦,我网站上的视频元素不能仅在 iPad (iOS 8.3) 移动 Safari 上以“全屏模式”(意思是 div 横跨整个窗口)垂直居中。

在多次尝试和错误中,我遇到了一种奇怪的行为。当绝对定位的视频被拉伸到全高和全宽并且设置了自动边距时,视频元素垂直居中:

编辑:请注意,您需要减小小提琴中结果部分的宽度才能查看效果。

Fiddle

HTML

<div class="hello">
  <video src="foo"></video>
</div>

CSS

.hello {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}
video {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    margin: auto;
}

这在移动 Safari 上有效,似乎对 Chrome Android 或 Firefox 没有任何不利影响。它在桌面浏览器上的行为也符合预期。当我完全拉伸视频时,这个边距如何垂直居中?

【问题讨论】:

    标签: html css ipad html5-video mobile-safari


    【解决方案1】:

    如果没有实际的视频源,您的小提琴将无法正常工作。正如您所描述的那样,我无法重现由边距触发的行为。但我确实在我自己搜索 iOS 上垂直居中视频时发现了你的问题。也许我的结论对你有帮助:

    当前的 iOS 浏览器将在视频底部留出空白空间(假设视频元素高于渲染视频尽可能大的高度)。底部的空白空间只要小于本机控件占用的大小即可。其背后的明显想法是,尽可能不在视频前面渲染控件,而是在视频下方渲染。

    问题来了:如果您停用控件/没有使用“控件”属性激活它们,这甚至会发生。我能想到的唯一解决方法是获取视频的固有宽度和高度并手动计算当前的实际视频高度。然后,您可以继续设置视频节点的高度,并根据您的情况设置上边距,使其在容器内垂直居中。

    希望这会有所帮助。

    【讨论】:

    • 对不起,我应该提到您需要减小小提琴中结果容器的宽度才能查看描述的结果。需要减小宽度的原因是为了模拟设备的纵向模式,也更容易让您查看边距的效果。您的回答终于让我弄清楚为什么 ios 设备的底部边距存在。谢谢!
    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 2014-05-29
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    相关资源
    最近更新 更多