代码之家  ›  专栏  ›  技术社区  ›  Tobias Glaus

在这种情况下,为什么“位置:固定”相对于文档而不是相对于视口?

  •  -1
  • Tobias Glaus  · 技术社区  · 7 年前

    我有一个画廊,里面有我创造的灯箱。 灯箱是 position:fixed top:0 . 所以,如果我是对的,它应该在相同的位置,无论我是否向下滚动。不幸的是,事实并非如此。

    我无法用小提琴再现这个问题。您可以在这里查看: http://tobiasgla.us/portfolio . 您可以在手机上打开,也可以使用Chrome中的设备工具栏。

    以下2个对象得到了 位置:固定 不起作用的属性:

    .item-content{
       width: calc(100% - 100px);
       height: calc(100vh - 100px);
       position: fixed;
       top: 0;
       left: 0;
       margin: 50px;
    }
    .dupe.dupAnim{
       top:0;
       left:0;
       width:calc(100% - 100px);
       height:250px;
       margin:50px;
       position:fixed;
    }
    

    谢谢你的帮助!

    1 回复  |  直到 7 年前
        1
  •  5
  •   Niet the Dark Absol    7 年前

    从…起 MDN :

    当祖先拥有 transform perspective 属性设置为none以外的值,则该祖先用作容器而不是视口

    你的 <div class="container"> 使用动画,其中包括 transform: translateY(...) ,符合文档中列出的例外情况。因此,您的 fixed 元素相对于主容器,主容器确实随页面滚动。