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

固定位置,但相对于容器

越胤
2023-03-14
问题内容

我正在尝试使用以下方法修复一个问题div,使其始终停留在屏幕顶部:

position: fixed;
top: 0px;
right: 0px;

但是,该div容器位于居中的容器中。当我使用position:fixed它时,它固定了div相对于浏览器窗口的相对位置,例如它靠在浏览器的右侧。相反,它应该相对于容器固定。

我知道position:absolute可以用来相对于修复元素div,但是当您向下滚动页面时,该元素消失并且不会像那样粘在顶部position:fixed

是否有破解或解决方法来实现这一目标?


问题答案:

简短的回答: 不。 (现在可以使用CSS转换。请参见下面的编辑)

长答案:使用“固定”定位的问题是它会使元素 脱离流动
。因此无法相对于其父对象重新定位,因为好像它没有父对象。但是,如果容器的宽度是已知的固定宽度,则可以使用以下方法:

#fixedContainer {
  position: fixed;
  width: 600px;
  height: 200px;
  left: 50%;
  top: 0%;
  margin-left: -300px; /*half the width*/
}

编辑(03/2015):

这是过时的信息。现在,借助CSS3转换的魔力,可以将动态大小的内容(水平和垂直)居中。遵循相同的原则,但是可以使用代替使用边距来偏移容器translateX(-50%)。这不适用于上面的边距技巧,因为除非宽度固定,否则您不知道要偏移多少,并且您不能使用相对值(如50%),因为它将相对于父元素而不是相对于它的元素应用于。
transform表现不同。其值相对于它们所应用的元素。因此,50%for transform表示元素宽度的一半,而50%for
margin表示父元素宽度的一半。

使用与以上示例类似的代码,我使用完全动态的宽度和高度重新创建了相同的场景:

.fixedContainer {
    background-color:#ddd;
    position: fixed;
    padding: 2em;
    left: 50%;
    top: 0%;
    transform: translateX(-50%);
}

如果希望它居中,也可以这样做:

.fixedContainer {
    background-color:#ddd;
    position: fixed;
    padding: 2em;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}


 类似资料:
  • 问题内容: 我在另一个div内有两个div,我想使用css将一个子div放在父div的右上角,另一个子div放在父div的底下。即,我想对两个子div使用绝对定位,但是将它们相对于父div而不是页面定位。我怎样才能做到这一点? 范例html: 问题答案: 这工作,因为手段类似“使用,,,来定位自己相对于谁拥有最近的祖先或”。 因此,我们使have 和子代都有,然后使用和定位子代。

  • 问题内容: 我正在尝试给div(位置:固定)的宽度为100%(与其父div有关)。但是我有一些问题 编辑: **第一个问题是通过使用继承解决的,但它仍然无法正常工作。我认为问题在于我正在使用多个采用100%/继承宽度的div。 福克斯的例子 和html 问题似乎是 固定元素始终采用window / document的宽度 。有人知道如何解决吗? 我无法使用我的固定元素进行固定,因为我正在使用jSc

  • 我在另一个div中有两个div,我想使用CSS将一个子div放置在父div的右上方,另一个子div放置在父div的底部。例如,我想对两个子div使用绝对定位,但是相对于父div而不是页面定位它们。我怎么能这么做? HTML示例:

  • 本文向大家介绍说说你对相对定位、绝对定位、固定定位的理解相关面试题,主要包含被问及说说你对相对定位、绝对定位、固定定位的理解时的应答技巧和注意事项,需要的朋友参考一下 https://www.w3schools.com/css/css_positioning.asp https://www.w3school.com.cn/cssref/pr_class_position.asp

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

  • 问题内容: 我发现当我固定一个元素固定的位置时,父元素是否相对放置都没关系,它相对于窗口的位置是否固定? CSS HTML 问题答案: 让我为两个可能的问题提供答案。请注意,您现有的标题(和原始帖子)提出的问题与您在编辑和后续评论中寻求的问题不同。 要将元素相对于父元素“固定”放置,您需要在子元素上,并且要在 父元素 上使用默认或静态以外的任何位置模式。 例如: 这将相对于parentDiv的位置