html - 移动版 Safari 中 block 元素垂直居中的问题

标签 html css mobile-safari

我试图将一个 div(高度未知)在另一个 div 中垂直居中。我遵循了教程 here它似乎在 Firefox v33(桌面)、IE11 和 Chrome v39 中正确显示,但在移动 Safari 7 或 8 中无法正确显示 - 查看我的 jsFiddle ,或者 html/css 在下面。

为什么移动版 Safari 对此的处理方式与其他浏览器不同,我有哪些替代方案?我已经尝试过 flexbox,但它在移动版 Safari 中也不起作用。我知道垂直居中可能很棘手。我应该放弃并为要居中的元素分配一个固定的高度吗?如果高度是固定的,我可以让它工作 - 但在其他情况下高度确实可以可变,所以我想知道如何让它在没有固定高度的情况下工作。

<div class="outer">
    <div class="inner">This is a test</div>
</div>

.outer
{
    position: relative;
    background-color: black;    
    height: 100px;
}

.inner
{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: red;
}

移动版 Safari
Vertical Centering in Mobile Safari

火狐、IE11、Chrome
Vertical Centering in Firefox, IE11, & Chrome

最佳答案

translate需要添加webkit前缀。这是更新的 fiddle . Caniuse.com是供将来在这些情况下引用的好网站。

<div class="outer">
    <div class="inner">This is a test</div>
</div>

.outer
{
    position: relative;
    background-color: black;    
    height: 100px;
}

.inner
{
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    color: red;
}

关于html - 移动版 Safari 中 block 元素垂直居中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27112996/

相关文章:

html - 固定列的动态宽度

jquery - 多个粘性元素 Jquery Sticky Float

javascript - Websocket 连接在 Safari iOS 中随机挂起

javascript - CSS 选择器 : how to select elements with certain class name

javascript - IE9动态页面JS问题

html - 移动浏览器中 Div 的绝对定位问题

css - 图像在 iPad 移动版 Safari 上从 div 展开

JavaScript 使用 EventListener 和 jQuery 添加和删除 <tr>

php - 如何强制 Jooma!以HTML 格式发送电子邮件?

html - 将 localhost 添加到内容安全策略是否不安全?