深入理解及应用Position

position俗称定位,主要取值及作用如下:


static


默认值。没有定位,出现在正常文档流中


absolute


绝对定位,相对于position为absolute、relative、fixed的第一个父元素进行定位


relative


相对定位,相对于其正常位置进行定位


fixed


绝对定位,相对于浏览器窗口进行定位

Position本不复杂,混淆应用比较难理解,主要规则如下:

脱离文档流

除 static属性值之外,其他值都会使元素脱离文档流(float也会导致元素脱离文档流)。

对 Width、height的影响

1) Absolute的参考点为最近可作为参考点的父元素(position为absolute、relative、fixed的元素)、fixed的参考点浏览器窗口、relative的参考点为元素正常位置。

2) 元素本身值为inherit时

a) 当父级元素的Width和height值为数值时,元素继承父级元素的完整高度,并以最近参考点作为参考。

.wrap{
            position: relative;
            width: 500px;
            height: 300px;
            border: 1px solid red;
        }
        .cont{
            background: gray;
            width: 150px;
            overflow: hidden;
        }
        .txt{
            background: yellow;
            width: 230px;
            height: inherit;
        }
        .banner{
            background: pink;
            width: 50%;
            height: inherit;
        }
        .txt-cont{
            position: absolute;
            background: darkblue;
            width: inherit;
            color: white;
        }
<div class="wrap">
        <div class="cont">
            cont
            <div class="txt">
                txtxtxt
                <div class="txt-cont">
                    txt-cont
                </div>
            </div>
            <div class="banner">
                banner
            </div>
        </div>
</div>

b) 当父级元素的Width和height值为百分比时,以参考点元素的宽、高* 百分比来计算。

.wrap{
            position: relative;
            width: 500px;
            height: 300px;
            border: 1px solid red;
        }
        .cont{
            background: gray;
            width: 150px;
            overflow: hidden;
        }
        .txt{
            background: yellow;
            width: 50%;
            height: inherit;
        }
        .banner{
            background: pink;
            width: 50%;
            height: inherit;
        }
        .txt-cont{
            position: absolute;
            background: darkblue;
            width: inherit;
            color: white;
        }
<div class="wrap">
        <div class="cont">
            cont
            <div class="txt">
                txt
                <div class="txt-cont">
                    txt-cont
                </div>
            </div>
            <div class="banner">
                banner
            </div>
        </div>
</div>

3) 元素本身为百分比时(50%)

此种情况下,无论父级元素的width和height是数值,还是百分比都不会造成对元素自身的影响,元素自身还是会以参考进行相应的计算。

.wrap{
            position: relative;
            width: 500px;
            height: 300px;
            border: 1px solid red;
        }
        .cont{
            background: gray;
            width: 150px;
            overflow: hidden;
        }
        .txt{
            background: yellow;
            width: 50%;
            height: inherit;
        }
        .banner{
            background: pink;
            width: 50%;
            height: inherit;
        }
        .txt-cont{
            position: absolute;
            background: darkblue;
            width: 100%;
            color: white;
        }
<div class="wrap">
        <div class="cont">
            cont
            <div class="txt">
                txt
                <div class="txt-cont">
                    txt-cont
                </div>
            </div>
            <div class="banner">
                banner
            </div>
        </div>
</div>

定位后的默认位置

Fixed和absolute属性后的默认位置都是在原地,只是紧跟后面折正常文档流元素会顶上来,被定位元素盖住。

他与z-index无解的关系

z-index的详细介绍见后面章节,此处只指出position除static值外都会创建层叠上下文(z-index不为auto的时候)。

1) z-index为数值时,会创建层叠上下文,子元素层叠顺序以此做为参考。

2) z-index为auto时,不会创建层叠上下文,层叠顺序与z-index:0一致。

时间: 2025-01-15 18:47:15

深入理解及应用Position的相关文章

深入理解css中position属性及z-index属性

深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共有四种不同的定位方法,分别是static.fixed.relative.absolute.最后将会介绍和position属性密切相关的z-index属性. 第一部分:position: static static定位是HTML元素的默认值,即没有定位,元素出现在正常的流中,因此,这种定位就不会收到t

【拼爹坑爹不比爹】深入理解css中position属性及z-index属性

总结:拼爹坑爹不比爹 1,定位移动:距左上角left+top;(移动后对于移动前:如果值为负数,则直接换成整数:如果值为整数,则直接改变相对方向.)2,单一父元素不设值,子z-index才奏效:"不比爹"3,多个父元素,"拼爹坑爹"(子凭父贵,子贵父不贵)(爹设值,因外有body)4,多个父元素多子元素,各父各子高低相互比,就是不比爹:>< [转]深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要

[论文理解] How much position information do convolutional neural network encode?

How much position information do convolutional neural network encode? Intro 文章是ICML2020的一个工作,探究了CNN到底有没有编码位置信息,这些位置信息在哪些神经元中被编码.这些位置信息又是如何被暴露给神经网络学习的.文章通过大量实验表明,CNN不仅可以编码位置信息,而且越深的层所包含的位置信息越多(而往往越深的层解释性越差,浅层学习到的形状.边缘等比较容易解释),而位置信息是通过zero-padding透露的,显

理解CSS中position的各个值

static position的默认值,没有定位,元素在normal flow中: fixed 相对于浏览器左上角定位: relative 相对定位元素,其位置根据其在normal flow中的位置来计算: absolute 产生脱离正常流的元素,相对于第一个父级position值不为static的元素来定位,没有则相对于body

理解CSS的position:relative

最近工作中做了几件事情都与页面元素定位相关,所以这里将工作中遇到的问题以及解决方法记录在博客里,以便日后查阅. 叠压 有一个任务是做一个列表组件,列表中的每一行都要向上叠压上一行的底边,注意,是叠压,不是接壤. 问题分析: 利用相对定位(position:relative)来制造相对于行(row)的偏移量,使行内元素向上偏移,并叠压上一行的行内元素的底边. 既然是相对定位,那就不能让每一行的定位基准点基于上一行的底边.因为,基准点不会因为上一行元素被CSS搞过之后而同时发生偏移. 举例说明:2个

通过案例理解position:relative和position:absolute

w3school过了HTML的知识之后,觉得要自己单纯地去啃知识点有点枯燥,然后自己也很容易忘记,所以便找具体的网站练手便补上不懂的知识点.position:relative和postion:absolute困扰了我快一个星期之久,网上找到的资料鱼龙混杂,刚确定“这样”的理解之后,看另一份资料,发现“这样”理解是错了,就这样不断更正,并记录下来,最终整理出这份,以备参阅. 若有错误,请指正. 下面的结果都是基于firefox38版本来测试的. position:relative相对定位 1. 如

CALayer的position,anchorPoint属性 与UIView的frame 属性

彻底理解CALayer的position,anchorPoint属性 与UIView的frame 属性 1.position,anchorPoint两者都是CALayer的属性,都是CGPoint点 @property CGPoint position @property CGPoint anchorPoint 从一个例子开始入手吧,想象一下,把一张A4白纸用图钉订在书桌上,如果订得不是很紧的话,白纸就可以沿顺时针或逆时针方向围绕图钉旋转,这时候图钉就起着支点的作用.我们要解释的anchorPo

css知多少(11)——position

1. 引言 本文将用一篇文章介绍position(定位),在学习position之前,我们应该去思考一个问题:什么情况下我们需要定位?如果没有定位将无法满足我们怎样的需求?我们要知道,被人类创造出来的每一个知识,都有它的用途,都要解决一些之前遇到的问题. 如果没有定位,我们做出来的网页将会是按部就班的自上而下.自左而右的平铺在浏览器上,外加通过margin和padding调整一下间距,还有就是通过float来浮动某些元素.做一些简单的网页这样就够了,例如N年之前的yahoo,虽然现在看来很low

position讲解

Position(位置) 只要使用定位,必须要有一个相对的参照物.relative 具体定位的那个元素需要加position:absolute;(绝对的).绝对的 :就是具体到某一个地方了,特别详细的意思. 使用绝对定位的时候,浏览器会逐层向上级元素找position属性,如果父级没有就会继续向上级查找position,一直到找到position为止,如果找不到就以body为相对位置. 页面布局 1.结构层:搭我们的页面框架. 2.布局层:针对框架内部结构进行排版. 不需要使用浮动解决的问题尽量