Html 背景附件:修复了在Chrome上向后移动的问题

Html 背景附件:修复了在Chrome上向后移动的问题,html,css,background-position,Html,Css,Background Position,我在Chrome(macOS上的v67)中遇到了一个非常奇怪的背景位置错误:修复了,当我滚动时背景图像实际上会向上移动,而不是修复了 以下是该问题的代码笔: 下面是它的gif: 页面内容的结构如下所示 这不是一个bug,这就是后台附件应该如何工作的。若你们想让图像留在屏幕上,你们应该使用位置:固定 它以期望的方式工作。为了更清楚,请浏览 虽然您希望实现的目标可以通过在代码中进行位调整来实现: 。背景图像{ 宽度:100%; 身高:100%; 排名:0; 左:0; 背景图像:url('http

我在Chrome(macOS上的v67)中遇到了一个非常奇怪的
背景位置错误:修复了
,当我滚动时背景图像实际上会向上移动,而不是
修复了

以下是该问题的代码笔: 下面是它的gif:

页面内容的结构如下所示


这不是一个bug,这就是后台附件应该如何工作的。若你们想让图像留在屏幕上,你们应该使用位置:固定

它以期望的方式工作。为了更清楚,请浏览

虽然您希望实现的目标可以通过在代码中进行位调整来实现:

。背景图像{
宽度:100%;
身高:100%;
排名:0;
左:0;
背景图像:url('http://alexismorin.com/images/watertown.jpg');
z指数:-1;
背景位置:中心;
背景尺寸:封面;
背景附件:固定;
}
p{
颜色:#333;
}


网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里


这看起来像是Chrome最新版本中的一个bug。这不是预期的行为。如果还没有输入错误报告,我建议提交错误报告。

我通常使用伪元素。试试这个:

body:after{
    content: '';
    background-image: url('http://alexismorin.com/images/watertown.jpg');
    background-size: cover;
    opacity: 1;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    position: fixed;
    z-index: -1;
}

首先,
position:relative
应用于body标记,因为它是背景图像div的祖先

然后
背景图像的高度设置为
100vh
。这将使它成为窗口的高度,但它并不总是在视野中

/*由于body元素是.background图像的父元素,我们需要将其位置设置为相对位置*/
身体{
位置:相对位置;
}
.背景图像{
位置:绝对位置;
宽度:100%;
高度:100vh;/*正好是视口的高度,不大于*/
排名:0;
左:0;
背景图像:url('http://alexismorin.com/images/watertown.jpg');
z指数:-1;
背景位置:中心;
背景尺寸:封面;
背景附件:固定;
}
p{
颜色:#333;
}


网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里

网站在这里


这是谷歌Chrome67的一个漏洞。这将修复它,尝试一下:

@media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm) {
    transform: translate3d(0,0,0);
    -webkit-transform: translate3d(0,0,0);
}
更多信息,请访问:
我也有同样的问题,它涉及到一个事实,即在CSS规则的层次结构中,有一个“position:absolute”位于您的“position:fixed”之上。寻找导致问题的绝对位置。对我来说,我进入了Chrome的开发者工具,检查了那些位置与“修复”相反的框,直到我找到了问题所在。我的是一段Javascript代码。希望这可以帮助别人。

Master.Deep您的示例始终显示背景图像。这不是我想要的。我希望在滚动到视图中时,背景图像最终被其余内容(所有aragraphs)覆盖。查看
position:fixed
的行为:这真的是它应该如何工作的吗?它在Firefox或Edge中的工作方式与此不同,在之前的Chrome版本中也没有类似的工作方式。最新的Chrome更新(在Windows上为67.0.3396.62)彻底改变了我网站的背景滚动行为。我不知道你是否正确,但定位修复在codepen中工作,所以我写了答案。我不是真正的css专家,但在代码笔中有绝对位置,这可能就是它无法滚动的原因。不幸的是,这对我的问题没有帮助。
@media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm) {
    transform: translate3d(0,0,0);
    -webkit-transform: translate3d(0,0,0);
}