【问题标题】:HTML element grows every time I rotate iPhone (or Safari window size crosses breakpoint)每次我旋转 iPhone(或 Safari 窗口大小越过断点)时,HTML 元素都会增长
【发布时间】:2015-02-10 23:11:04
【问题描述】:

我已经复制了一个我认为是最小(或接近它)示例的问题。你可以在这里看到它:http://nyh.name/walker.html

(如果链接失效,因此源代码很容易查看,完整的 HTML 和 CSS 在本文末尾。)

如果我在 iPhone 6 上以纵向(375“像素”宽度)查看此页面,然后将其旋转为横向(667“像素”宽度),“foo”元素会突然获得大量顶部填充。如果我使用 Safari 的 Remote Web Inspector,“盒子模型”视图会将该区域的颜色显示为 填充,尽管填充值都显示为“-”。

让这个真正有趣的是,如果我将它旋转回纵向,它会保留(一些)填充。如果我不断来回旋转它,它就会不断增长。

我可以通过打开页面并在断点上来回移动窗口宽度来在 Safari(OS X 10.10.2 Yosemite 上的 8.0.3)中重现这一点。您可能需要打开停靠在右侧的 Web Inspector 才能使视口足够窄:

关于如何解决、缓解或解决此问题的任何想法? (假设我想要不同的字体大小和display: table-cell。)

完整的 HTML 和 CSS:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Repro</title>
  <style>
    @media (min-width: 451px) {
      body {
        font-size: 100px;
      }
    }

    .wrapper {
      display: table;
    }

    .foo,
    .bar {
      display: table-cell;
    }

    .foo {
      background: blue;
      font-size: 20px;
    }

    .button {
      font-size: 20px;
    }
  </style>
</head>
<body>
  <div class="wrapper">
    <div class="foo">
      foo
    </div>
    <div class="bar">
      <button class="button">
        bar
      </button>
    </div>
  </div>
</body>
</html>

【问题讨论】:

  • 我找到了一些 Web 表单并将其作为错误提交给 Apple,但我怀疑它很快就会有任何结果。
  • 因为这个最小的例子表明问题似乎只有在字体大小在旋转时发生变化时才会发生,所以我通过将断点从 451 px 更改为 737 px 来解决这个问题——这比最大边大iPhone 6 Plus 为 736"px",比 iPad mini 的最小边为 768"px"。因此,对于所有(我希望)移动 Apple 设备,纵向和横向的字体大小将是相同的。

标签: ios css safari


【解决方案1】:

将body标签中的font-size改为较小的值即可解决。

【讨论】:

  • 是的,我花了一些时间把它简化为一个接近最小的例子,所以改变几乎 任何东西 都会让它消失 :) 但只要正文字体-size 大于.foo 和.button 的大小,你会看到这个问题——我只是用一个巨大的值来让问题更明显。例如,您可以使用 16 像素和 14 像素来查看它。
猜你喜欢
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 2023-03-06
  • 2022-01-02
  • 1970-01-01
  • 2015-12-16
  • 2019-09-06
  • 1970-01-01
相关资源
最近更新 更多