【问题标题】:iPhone + CSS3 Multi Col + Overflow: Scroll = Bug?iPhone + CSS3 多列 + 溢出:滚动 = 错误?
【发布时间】:2012-01-08 07:24:32
【问题描述】:

全部。我在尝试在溢出中实现 CSS3 多列时遇到了奇怪的行为:滚动容器。适用于 OS X 的 Chrome + Safari,适用于 iPhone:

<div id="rubber-banded">
  <div id="columns">
    <p>[...]</p>
    <p>[...]</p>
    [...]
  </div>
</div>

#rubber-banded {
  -webkit-overflow-scrolling: touch;
  overflow:scroll;
  margin-top:42px;
  width:100%;
  outline:2px solid red;
  height:300px;
}

#columns {
  margin-top:10px;
  -webkit-column-width:120px;
  height:250px;
  outline:2px solid blue;
}

这是预期的结果:

这是实际结果:

如您所见,文本溢出#columns,直到新段落开始。然后,下一段从下一列开始,上面有一个空白。这很奇怪,如果我在#rubber-banded 上将overflow:scroll; 更改为overflow:hidden;,我会得到预期的结果——尽管我没有得到我想要的橡皮筋效果:(。我也试过了-webkit-column-break-after 的各种组合都无济于事。

这是一个错误还是我做错了?

【问题讨论】:

    标签: iphone css safari webkit


    【解决方案1】:

    浏览器对 CSS 属性 overflow: scroll 的解释不同(尽管浏览器引擎在您的情况下是相同的),在 iPhone 上,每当有 scroll 时,浏览器都会为滚动添加一个边距,因为它是触摸优化的浏览器。

    【讨论】:

    • 无论#rubber-banded 的大小、它的滚动边距(在iPhone 和桌面webkit 上都有)或它的溢出属性,每个文本列总是与@987654324 的顶部对齐@ 在 Chrome + Safari 上。我们可以通过将#rubber-banded 的高度折叠到小于#columns 来确认这一点; Chrome + Safari 添加垂直滚动条但列正常呈现。 iPhone 没有。桌面上的行为是,无论#columns 周围发生什么,文本列都不应溢出其容器,并且应始终与顶部对齐。
    猜你喜欢
    • 2013-03-01
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多