div position:fixed且不脱离文档流,就是还占据原来的位置,不会与其他div重叠

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了div position:fixed且不脱离文档流,就是还占据原来的位置,不会与其他div重叠相关的知识,希望对你有一定的参考价值。

position:fixed 在IE6中不支持,position:relative;是不脱离文档流,如果你不指定top,bottom,right,left的值,他还是占据原来的位置,至于不会与其它的DIV重叠,那要看你其它块的设置了。

【延展】

div中 关于四种position的说明:

1、position版本:CSS2 兼容性:IE4+ NS4+ 继承性:无

2、position : static | absolute | fixed | relative

3、static : 默认值。无特殊定位,对象遵循html定位规则。

4、absolute : 将对象从文档流中拖出,使用 left , right , top , bottom 等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据 body 对象。而其层叠通过 z-index 属性定义。

5、fixed : 未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范。

6、relative : 对象不可层叠,但将依据 left , right , top , bottom 等属性在正常文档流中偏移位置。

参考技术A position:fixed 在IE6中不支持,position:relative;是不脱离文档流,如果你不指定top,bottom,right,left的值,他还是占据原来的位置,至于不会与其它的DIV重叠,那要看你其它块的设置了。 参考技术B position:fixed后一定会脱离文档流,一般一个网页header部分到很多。header设置position:fixed定位后,你是遇到和下一个div(main)会上移问题吧?这里可以给header部分设置高,然后main给一个margin-top,可以实现两个div分开。 另外注意position:fixed,一定要设置top:0; left:0:; 不然会引起margin-top无效。 参考技术C 在设置了fixed的div下再设置一个空的div,小小设置成你要占据的尺寸,妥妥儿的 参考技术D 没太看明白你的问题,我记得应该是position:relative;是不脱离文档流,即还占据原来的位置。追问

position:relative;是不脱离文档流,但是会随着滚动条的滚动而移动出窗口的显示位置,我想要position:fixed 的效果,但是又不想div脱离文档流

问题记录---关于posiition脱离文档流及vue中this.$route信息

1、关于position:fixed会脱离文档流

简单例子:

原型有三个div盒子:
技术图片
将剥box1设置为position:fixed后
技术图片
从上图可以看出:box1脱离了文档流,且层级显示优先于正常文档,他们之间的层级关系是:z-index负数<正常<float(和文档同级)<position<z-index正数
要使得box2及之下显示正常:要使fixed定位的left和top为0,固定到窗口顶部,是box2的margin-top设置为box1的height

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test2</title>
    <style>
        .box1 {
            width: 100%;
            height: 60px;
            text-align: center;
            line-height: 60px;
            background-color: aquamarine;
            position: fixed;
            /* z-index: 2; */
            left: 0;
            top: 0;
        }
        
        .box2 {
            width: 100%;
            height: 60px;
            text-align: center;
            line-height: 60px;
            background-color: beige;
            /* position: relative; */
            margin-top: 60px;
        }
        
        .box3 {
            width: 100%;
            height: 60px;
            text-align: center;
            line-height: 60px;
            background-color: cadetblue;
        }
    </style>
</head>

<body>
    <div class="box1">box1</div>
    <div class="box2">box2</div>
    <div class="box3">box3</div>
</body>

</html>

注:在给页面导航条固定位置的时候发现

2、vue中this.$route的信息

首先:this.$router记录的是一个全局的router对象,this.$route记录当前路由对象的一些信息,包括name,path等等

面包屑导航条组件实现实例:时刻跟踪记载路由的变化,用this.$route.matched等获取路由的路径

<template>
    <div class="breadcrumb">
        <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
            <li class="breadcrumb-item" v-for="(item,index) in routers" :key="index">{{item.name}}</li>
        </ol>
        </nav>
    </div>
</template>
<script>
export default {
    data(){
        return {
            routers:[]
        }
    },
    methods:{
        getRouter(){
            // console.log(this.$router);
            // console.log(this.$route);
            this.routers = this.$route.matched;
            // console.log(this.routers);
        }
    },
    mounted(){
        this.getRouter();
    },
    watch:{
        $route(){
            this.getRouter();
        }
    }
}
</script>
<style>
    .breadcrumb{
        background-color:#fff !important;
        height:40px;
    }
</style>

以上是关于div position:fixed且不脱离文档流,就是还占据原来的位置,不会与其他div重叠的主要内容,如果未能解决你的问题,请参考以下文章

disposition relative脱离文档流了

2020-10-29 CSS position:fixed 如何居中

关于position:fixed;的居中问题

css如何不改变原位置的使多个图片在原地动画

文档流&浮动&定位

导航栏吸顶效果