【问题标题】:Fixed position not working in Safari 7固定位置在 Safari 7 中不起作用
【发布时间】:2014-09-29 20:29:52
【问题描述】:

当我滚动时,我有一个固定位置的 div,它位于屏幕底部,而不是移动。然而,在 Safari 上,这个 div 就像它是绝对定位的一样,并随着其余内容上下移动。当我点击“检查元素”时,编程的(所需)位置会突出显示,而不是视觉(实际?)位置。

我无法在小提琴中重现此问题。这在 Chrome、FF 或 IE (10+) 中不会发生。

这是视觉(字符计数框)和编程位置(突出显示区域)之间差异的屏幕截图。

在这些之上还有更多实际的 css 和 html 层,但这里是直接代码:

html简化

<article class="parent">
  <article class="inner-wrapper">
    <div id="counter">
      Character Count: <span class="tally">*javascript calculation*</span>
    </div>
  </article>
</article>

scss

article.parent {
  max-width: rem(640);
  margin: 0 auto rem(30) auto;
  padding: 0 rem(10);

 #counter {
   position: fixed;
   border: #888 solid 1px;
   bottom: 130px;
   left: 10px;
   border-radius: 5px;
   padding: 10px;
   background: rgba(255, 255, 255, .8);
   font-size: .8em;
   min-width: 150px;
 }

}

如何使这个 div 在 Safari 中运行,以便视觉对象位于编程位置的顶部?

【问题讨论】:

  • 可以分享html和css吗?
  • 很遗憾,我不能。我知道这是一个很长的尝试,但我想我会尝试。
  • 不,我认为这会很容易 > 所以你需要一个 div 总是在滚动时附加到窗口顶部 --- 如果我没记错的话??
  • 是的,先生。这就是它在 Chrome、FF 和 IE 10 上的工作方式。待命,我实际上可以给你直接的 CSS。
  • 请给出我会尝试的 css

标签: css safari safari7


【解决方案1】:

发现错误:

通过在父元素中包含这两个规则,我能够将错误追溯到我们使用的硬件加速“技巧”:

transform: translateZ(0)
perspective: 1000

通过删除这两个规则,元素现在可以按预期运行。更多关于这个问题的好信息在这里:CSS performance relative to translateZ(0)

额外错误修复:在 HTML 正文中删除这些规则会导致我们的 PhantomJS/Poltergeist 测试中出现各种元素重叠问题。显然 PhantomJS 不能自行正确移动元素。我们仅将这些规则包含在测试中,目前一切运行良好。

原始解决方案:

我可以通过从父容器中拉出计数器来解决这个问题:

<article class="parent">
  <article class="inner-wrapper">
    ...
  </article>
  <div id="counter">
    Character Count: <span class="tally">*javascript calculation*</span>
  </div>
</article>

【讨论】:

    【解决方案2】:

    试试这个小提琴

    http://jsfiddle.net/sosypjLg/1/

    #counter {
    position: fixed;
    bottom: 0;
    width: 100%;
    }
    

    你需要这种 CSS 样式

    【讨论】:

    • 这会粘在 div 的顶部。我想把它贴在窗口的底部(或顶部,以任何一个为准)。
    • 现在这会粘在 div 的底部。我正在寻找这个贴在窗口底部的棒,这样当我上下滚动 div 时,它就会保持原样。
    • 我很困惑,如果这是你想要的,请看这个小提琴jsfiddle.net/uw8f9
    • 那个小提琴做了我想做的事,但不幸的是,那个代码在我的项目中不起作用。
    • hmm.. 不知道你的代码我无法解决你的问题,对不起伙计
    猜你喜欢
    • 1970-01-01
    • 2014-04-05
    • 2018-11-26
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多