代码之家  ›  专栏  ›  技术社区  ›  Ood

修复Chrome中的后台附件错误

  •  0
  • Ood  · 技术社区  · 6 年前

    查看此网站时 http://jsfiddle.net/dN4S4/1405/ 在带有Mac retina显示器的chrome上,背景渲染不正确。这是使用的CSS:

    body{
      width: 100%;
      height: 100%;
      margin: 0;
      position: absolute;
    }
    #cards{
      width: 100%;
      height: 100%;
      overflow-y: auto;
    }
    .card-wrapper{
        width: 100%;
        height: 100%;
        background: url(url here);
        background-attachment: fixed;
        background-size: cover;
        background-position: center;
    }
    .card{
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.875);
        font-family: "Helvetica Neue", Helvetica, Arial;
        font-size: 14px;
        text-align: left;
        color: #FFFFFF;
    }
    

    我发现这是一个已知的问题,但还没有找到一个实际可行的修复方法。它在任何其他浏览器上都能按预期渲染,甚至在chrome中以“正常”显示查看网站时也能正常工作。

    为了简单起见,我在演示中使用了相同的图像,但是我想使用不同的图像来创建“视差”效果。

    请不要认为身体上的“位置:绝对”不会导致此问题。它也会出现在不同的“位置”和“显示”值中。

    有没有关于如何正确渲染的建议?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Clinton Chau    6 年前

    我已经把你的 JSFiddle 为了让视差效应以我所期望的方式工作,但你必须自己去验证它。

    这里的主要观点是 background-attachment: fixed 应应用于父级/容器 div 不会“滚动”。想想你的 card-wrapper 班级是一个非常非常高的容器,容纳着所有的个人 card 向上滚动,所有这些 fixed 具有背景图像的容器在背景中保持不变。