当前位置: 首页 > 面试题库 >

固定背景固定和位置固定元素的Chrome问题

常英毅
2023-03-14
问题内容

我已经有一段时间了,这似乎是一个Chrome重绘错误,尚未修复。因此,我正在寻找任何权宜之计。

主要问题是页面上的元素具有使用以下内容的背景图像时:

background-attachment: fixed;

如果另一个元素固定并具有子视频元素,则它将导致具有背景图像的元素消失。

现在,它可以在Safari(以及Firefox和IE)中正常运行,因此这并不是Webkit的问题。我已经应用了一些没有用的建议属性。

-webkit-backface-visibility: hidden;
-webkit-transform: translate3d(0, 0, 0);

目前,我的解决方案只是通过媒体查询以固定的bg图片定位元素,然后关闭固定的background属性。

@media screen and (-webkit-min-device-pixel-ratio:0) {
background-attachment: scroll;
}

有任何想法吗?

感谢Daniel的
工作演示

更新2

更好的演示!

大喊答题节目环节以somesayinice和FourKitchens博客文章


问题答案:

在以下位置找到了此解决方案

在我看来,使用:before伪元素是一种聪明的方法。限制固定宽度元素的宽度,但对全角页面效果很好。本质上看起来像这样:

.background_fill {

  overflow: hidden;

  position: relative;

    color: red;

}

.background_fill:before {

  background-color: white;

  background: url('http://www.lausanneworldpulse.com/pdfs/brierley_map_0507.jpg') no-repeat center center;

  background-size: cover;

  z-index: -3;

  content: " ";

  position: fixed;

  will-change: transform;

  width: 100%;

  height: 100%;

}


<div class="background_fill">

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

  <div>this is on a background / this is on a background / this is on a background / this is on a background / this is on a background / this is on a background</div>

</div>

作为解决这个非常烦人的bug的一种方式,对我来说非常有用。



 类似资料:
  • 问题内容: 这是我要完成的工作: 我需要一个按钮,该按钮与div的右侧保持一定距离,并且无论视口的大小如何,该按钮始终与div的侧面保持相同的距离,但是会随窗口滚动。 因此,始终是div右侧的x像素,而始终是视口顶部的y像素。 这可能吗? 问题答案: 水平放置固定元素(基于另一个元素) ( 免责声明 :此处提供的解决方案在技术上并非如问题标题所述为“绝对水平 ”,而是实现了OP最初想要的功能,固定

  • 问题内容: 我想创建一个以动态宽度和高度为中心的弹出框。我曾经为此。没有它,则水平居中,但不能垂直居中。添加后,它甚至没有水平居中。 这是完整的设置: 如何使用CSS在屏幕上将此框居中? 问题答案: 基本上,您需要设置div 并将其居中放置在div的左上角。您还需要将和设置为div的高度和宽度的负一半,以将中心移到div的中间。 因此,在提供(标准模式)的情况下,此操作应: 或者,如果你不关心垂直

  • 问题内容: 好的,我注意到了一些东西,但是在CSS规范中找不到。样式化元素将相对于浏览器视口绝对定位。如果将固定位置的元素放置在另一个元素内会怎样?CSS示例如下: 和HTML: 据我所知,该元素相对于其最近的父元素也是固定位置的。这在所有浏览器中都可以使用吗?另外,它是错误还是故意行为? 到目前为止,我在互联网上没有找到关于此主题的任何内容,只是“固定位置使其固定在页面上”。 问题答案: 固定和

  • all内包含left,right,其中因为left内容多,所以all整体是有上下滚动的滚动条的,怎么使right一直固定显示。

  • 我创建了一个固定在页面底部的容器。但是,容器随后溢出页面,填充规则被完全忽略。我在论坛上搜索过,但找不到一个解决问题的方法。我试过使用position absolute,也试过使用Javascript计算滚动条宽度,但都没有用。 null null

  • 问题内容: 在我建立的网站上滚动时,使用CSS属性可以按预期方式将导航栏保持在页面的顶部。 但是,在Chrome浏览器中,如果您使用导航栏中的链接,该链接 _有时会_消失。通常,您单击的项目仍然可见,但并非总是可见。有时整个事情消失了。左右移动鼠标将使元素的一部分退回,而使用滚轮或箭头键滚动只需单击一次即可将元素退回。您可以在上(间歇地)看到它的发生- 您可能必须单击几次导航链接,才能看到它的发生