android - 跨浏览器垂直居中的终极解决方案?

标签 android html css mobile cross-browser

简短且无痛,我尝试了很多方法来获取元素,例如信息文本,绝对居中(水平/垂直)使用 div、Javascript、jQuery 或任何其他内容。

问题不在于让它发挥作用,而且有很多不同的方法,但我正在努力让它跨浏览器兼容。 事情应该如此简单。

例如,在以下场景中,FF21 毫无逻辑地将 50% 的边距顶部解释为 100%。 (但移动设备则不然)。

我正在使用<meta name="viewport" content="minimum-scale=1.0, width=device-width, maximum-scale=1.0, user-scalable=no" />

相关CSS:

body {
    margin: 50% 0 0;
    padding: 0;
    border: 0;
    display: block;
    vertical-align: middle; /* removing this made no real difference at all */
    font-family: Helvetica, Arial, MS Sans Serif;
    font-size: 11pt;
    text-align:center;
    background-color: rgb(10, 50, 100);
    color: #ddd;
}

注释:

  • 在 Firefox 中,预期的垂直居中设置为 25% 的上边距(这在移动浏览器中看起来又是错误的)。
  • 使用 HTML5
  • 尝试避免任何形式的脚本和预先计算的负边距。浏览器应该按照您的要求正确居中。

JS- fiddle :http://jsfiddle.net/sfaVg/

最佳答案

如果没有包含文本的元素,我怀疑您是否能够像您希望的那样将其定位在正中心。一旦你编写了正确的标记(例如,将段落放在它所属的 <p> 中),使用以下 css 就很有可能;

p {
    display: table-cell;
    vertical-align: middle;
    text-align:center;
}

还要确保其容器(在您的情况下为 body )获得 display: table;和 100% 宽度/高度

演示地址:http://jsfiddle.net/sfaVg/3/

此外,可以在 http://zoffix.com/new/absolute-center-random-width-height.html 找到额外的替代方法(需要两个容器)。

第三种解决方案,当您知道要居中的物体的尺寸时:http://reisio.com/examples/deadcenter/

关于android - 跨浏览器垂直居中的终极解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16934678/

相关文章:

Android Studio - PDFRendererBasic - 无法替换 sample.pdf?

javascript - 应用内浏览器不会关闭

javascript - 如何使用 jQuery 启用更改时的选择下拉菜单?

javascript - 获取 <a> 标签内的数据

android - Android :configChanges Eclipse 中的 Admob 错误

android - 从 Facebook 相册获取图片?

css - IE7兼容的CSS框架

javascript - 轻松集成 PhotoSwipe 的方法

javascript - 使用javascript更改一组元素的宽度

android - 以编程方式获取 Android 手机型号,如何在 android 中以编程方式获取设备名称和型号?