html - Div 高度(vw 单位?)在 IOS safari 中不起作用

标签 html ios css safari

http://codepen.io/anon/pen/aBWvMX

预期的行为是,在大窗口尺寸下,黄色和红色 div 彼此相邻,而在较小的窗口尺寸下,它们堆叠在顶部并且可以滚动。

这适用于 PC 上的 Chrome、Firefox、IE。

这适用于 Mac 上的 Chrome、Firefox、Safari。

这适用于 Android 上的 Chrome。

这不适用于 IOS 设备上的 Chrome 或 Safari!!!

相反,在 IOS 设备上,它被渲染为一个对于视口(viewport)来说太高的巨大 div。另一个 div 根本没有出现。

我尝试了多种方法的组合,唯一取得了一些成功的方法是在 css 中使用@media 查询。我宁愿不这样做,因为我不能保证支持所有设备。

HTML:

<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="user-scalable=no, initial-scale=1, minimum-scale=1, maximum-scale=1, width=device-width, target-densitydpi=device-dpi">

  <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  <link rel="stylesheet" href="main.css">
</head>

<body>
  <div class="container-fluid" id="app">
    <div class="row" id="bg">
      <div class="col-md-6 col-lg-6 col-sm-12 col-xs-12" id="pic">
        <div class="leftlayer-gradient hidden-md hidden-lg">
        </div>
      </div>
      <div class="col-md-6 col-lg-6 col-sm-12 col-xs-12" id="details">
        <div class="rightlayer">
        </div>
      </div>
    </div>
  </div>

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>

CSS:

#pic, #details {
  height: 100vh;
}

#details {
  background-color: red;
  -webkit-background-size: 100%;
  -moz-background-size: 100%;
  -o-background-size: 100%;
  background-size: 100%;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  background-position: left;
}

#pic {
  background-color: yellow;
  -webkit-background-size: 100%;
  -moz-background-size: 100%;
  -o-background-size: 100%;
  background-size: 100%;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  background-position: right;
}

.rightlayer {
  background-color: rgba(0, 0, 0, 0.5);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.leftlayer-gradient {
  background: -webkit-linear-gradient(top, rgba(0,0,0,0) 70%, rgba(0,0,0,0.5)); /* For Safari 5.1 to 6.0 */
  background: -o-linear-gradient(bottom, rgba(0,0,0,0) 70%, rgba(0,0,0,0.5)); /* For Opera 11.1 to 12.0 */
  background: -moz-linear-gradient(bottom, rgba(0,0,0,0) 70%, rgba(0,0,0,0.5)); /* For Firefox 3.6 to 15 */
  background: linear-gradient(to bottom, rgba(0,0,0,0) 70%, rgba(0,0,0,0.5)); /* Standard syntax (must be last) */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

最佳答案

已解决:

该问题与视口(viewport)或与浏览器/操作系统的兼容性无关。

我使用的是来 self 的 DNS 提供商的带有屏蔽的转发,而他们只是通过 iframe 转发到网站(糟糕!)。

如果您使用的是 GoDaddy,您可能会遇到同样的问题。

关于html - Div 高度(vw 单位?)在 IOS safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40747492/

相关文章:

javascript - 将pushState()和popstate添加到我的项目中

ios - 需要在 iMessage Extension 的 insertText 方法上调用 didStartSending

ios - 如何在 Swift 中迭代 CustomCollection 泛型

html - CSS3 高度 :100% and flexible boxes creating unexpected behaviour

除第一个元素外的类的 Css 选择器

javascript - 如何更流畅地移动固定元素?

javascript - 如何获取两个位置之间路线的中心纬度和经度

html - Flexbox 样式 - 试图使 View 居中

css - 将按钮和链接放在 particles.js 脚本(Z-index)上

ios - Phonegap 应用程序适用于 iOS 6 但不适用于 iOS 5