【问题标题】:Vertical centering flexbox overlay in iOS safariiOS Safari 中的垂直居中 flexbox 覆盖
【发布时间】:2013-06-17 06:41:24
【问题描述】:

我的 flexbox 覆盖有以下代码

.overlay-content-wrapper {
  display: -webkit-flex;
  display: flex;
  position:fixed;
  height: 100%;
  width: 100%;
  top: 0;
  z-index: 999;
    background-color: rgba(0, 0, 0, 0.6);
    padding: 8px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.overlay-content {
    padding: 8px;
    min-height: 10px;
    min-width: 10px;
    margin: auto;
    background-color: #fff;
    border-radius: 8px;
    border: 1px solid #a5a5a5;
    position: relative;
}

<div class="overlay-content-wrapper"><div class="overlay-content">Some content</div></div>

在 Chrome 中它可以完美运行,但在 iOS Safari(v6 模拟器)中它不会垂直居中。我需要进行哪些更改才能使其正常工作?

【问题讨论】:

    标签: iphone css layout flexbox


    【解决方案1】:

    我遇到了同样的问题;将 flex 容器的子项(一个标题和一个图标)与 align-items: center 对齐。图标在中心正确对齐,但我的标题与顶部对齐,因为它的高度。

    在标题 CSS 中添加 align-self: center 解决了它!

    【讨论】:

      【解决方案2】:

      经过一段时间的研究,我发现 iOS safari 支持一种带有 webkit 前缀的旧语法(考虑到它的市场份额,令人惊讶的是,更多的 flexbox 教程/工具不包含旧语法......但是嘿嘿) .

      所以这是我的最终 CSS,它应该适用于支持某些版本的 flexbox 的所有浏览器,并在其他浏览器中回退到仅水平居中。

      .overlay-content-wrapper {
        display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
        display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
        display: -ms-flexbox; /* TWEENER - IE 10 */
        display: -webkit-flex;
        display: flex;
        -webkit-box-align: center;
        -webkit-flex-align: center;
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
        position:fixed;
        height: 100%;
        width: 100%;
        top: 0;
        z-index: 999;
        background-color: rgba(0, 0, 0, 0.6);
        padding: 8px;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
      }
      
      .overlay-content {
          padding: 8px;
          min-height: 10px;
          min-width: 10px;
          margin: auto;
          background-color: #fff;
          border-radius: 8px;
          border: 1px solid #a5a5a5;
          position: relative;
      }
      

      【讨论】:

        猜你喜欢
        • 2014-05-29
        • 2016-02-01
        • 2019-07-19
        • 2016-09-10
        • 2019-02-25
        相关资源
        最近更新 更多