我是靠谱客的博主 无聊煎蛋,最近开发中收集的这篇文章主要介绍 position fixed的相对容器是什么,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

请使用chrome浏览器敲打例子代码!

长久以来,我和部分同学对css中position:fixed的理解是该元素相对屏幕视口的定位。然而并不是,以下摘要自[MDN](
https://developer.mozilla.org...:

position:fixed
不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。打印时,元素会出现在的每页的固定位置。fixed
属性会创建新的层叠上下文。当元素祖先的 <span style="color: #f00;">transform 属性非
none</span> 时,容器由视口改为该祖先。

什么意思呢?我们用例子来表示。

下面的例子是元素相对body的定位:

<div class="parent">
    <div class="son">
        我是fixed元素
    </div>
    <div class="other">
        我是其他元素
    </div>
</div>
body {
    height: 2000px;
}
.son {
    position: fixed;
    left: 100px;
    top: 100px;
    width: 100px;
    height: 100px;
    background: #f00;
}
.other {
    height: 1000px;
}

这个例子里,body的滚动条滚动后,son元素的位置都是相对屏幕视口的位置。根据MDN的说明,改下代码的css部分添加parent元素样式:

.parent {
    margin-top: 100px;
    height: 500px;
    overflow-y: auto;
    background: #ff0;
    transform: translate(0,0);
}

这个时候,会发现滚动body的滚动条的时候,son元素跟着parent一起走了。然而,滚动parent的滚动条,son元素并没有按照想象中那样固定在parent容器的一个位置上,而是表现为absolute的效果。(这样就不能做我们心爱的吸顶效果了)。

整个例子下来,就总结出一句:这不是蛋疼吗?既然fixed在transform里变成了absolute的行为,为毛transform还要去影响fixed呢?

引用:
https://developer.mozilla.org...
http://www.zhangxinxu.com/wor...

最后

以上就是无聊煎蛋为你收集整理的 position fixed的相对容器是什么的全部内容,希望文章能够帮你解决 position fixed的相对容器是什么所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(26)

评论列表共有 0 条评论

立即
投稿
返回
顶部