【问题标题】:Flexbox issues in Safari 10.0.1Safari 10.0.1 中的 Flexbox 问题
【发布时间】:2016-11-02 09:06:47
【问题描述】:

我有 some code set up over at jsBin 来测试 flexbox,它在我扔给它的每个浏览器(包括 IE11)中都可以正常工作,但在 Safari 10.0.1 中,.img 元素不会被拉伸到它的父元素。有什么想法吗?

HTML:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      background: #f7f7f7;
    }

    h1 {
      padding-left: 20px;
    }

    .text {
      font-size: 12px;
      font-family: serif;
      text-align: center;
    }
  </style>
</head>
<body>
  <div class="wrapper">
      <div class="article">
        <div class="figure">
          <div class="img">
             <img src="http://json.tv/images/general/2014/09/08/thumbnail-20140908100224-3296.jpg" />
          </div>  
        </div>

        <div class="text">
          <span class="cat">Lifestyle</span>
          <h1>
            Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
          </h1>
          <span class="date">6. 6. 1966</span>
        </div>
      </div>
  </div>
</body>
</html>

CSS:

img {
  position:  absolute;
  height:    100%;
  left:      50%;
  transform: translateX(-50%);
}

.img {
  position: relative;
  height: 100%;
}

.figure, .text {
  width:    50%;
  overflow: hidden;
  float:    left;
}

.article {
  display:    flex;
  min-height: 280px;
  max-width:  690px;

  background: white;
}

【问题讨论】:

    标签: css safari flexbox


    【解决方案1】:

    我在 safari 9.1.3 中没有看到这个问题。

    我会为 flex 使用 webkit 前缀。看起来你只是把 display:flex;在所有内容上并且不分配 flex 值我会为你的包装器尝试这样的东西。就您的图像样式而言,我无法确切地看到您想要得到的东西。将图像的高度设置为 100% 是一个问题,因为这仅在父级具有静态高度时才有效。看起来,在这和隐藏的溢出之间,您可能正在尝试实现类似 background-size:cover; 的东西。我调查一下。

    https://www.smashingmagazine.com/2013/05/centering-elements-with-flexbox/

    http://codepen.io/ErwanHesry/pen/JcvCw

    .wrapper, .article {
      display: -webkit-flex;
      display: flex;
    }
    
    .figure, .text {
      -webkit-flex:1;
      flex:1;
    }
    
    .article {
      min-height: 280px;
      max-width:  690px;
      background: white;
    }
    

    【讨论】:

    • 对不起,我在 .wrapper 元素上设置了 flex,因为我最初希望有多个 .article 元素,所有元素都使用 flex 对齐。我会更新问题
    【解决方案2】:

    完全删除.img 元素就可以了。就好像 Safari 只拉伸相对于 flex 容器的直接元素(至少在播放绝对定位的图像的情况下)。

    See jsBin

    【讨论】:

      猜你喜欢
      • 2014-10-23
      • 2015-12-28
      • 2016-06-25
      • 2016-06-01
      • 2019-12-30
      • 1970-01-01
      • 2017-01-06
      • 2013-07-02
      • 2017-05-21
      相关资源
      最近更新 更多