发表于: 2020-07-21 23:44:54

0 1321


1)背景介绍:


position 属性规定元素的定位类型。这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。


(2)知识剖析:

          position常用的一般有五属性值

1.STATIC:默认值,无定位

元素显示在正常的标准流中,并且忽略TRLB以及z-index属性的设置 相当于没有设置position属性

2.ABSOLUTE:生成绝对定位元素

可以使用TRLB对元素进行定位,也可使用z-index更改元素的层叠顺序 相对于 static 定位以外的第一个父元素进行定位,脱离了正常的标准流,并且不占用标准流空间

3.RELATIVE:生成相对定位元素

可以使用TRLB对元素进行定位,也可使用z-index更改元素的层叠顺序 虽然该元素的位置发生了移动,但相对定位元素仍然处于正常的标准流中,所占据的空间是未生成定位元素之前它所占据的空间,而不是移动之后所占据的空间 使用TRLB对元素进行定位时,不能破坏也无法破坏正常的标准流 相对于原来正常时的位置进行定位

4.FIXED:也是生成绝对定位元素

可以使用TRLB对元素进行定位,也可使用z-index更改元素的层叠顺序 相对于浏览器窗口进行定位,脱离了正常的标准流,并且不占用标准流空间 当页面滚动时,元素固定不动

5.INHERIT:继承

从父标签继承position属性值

(3)常见问题:

         能不能一个元素相对于其它元素进行定位呢?、

(4)解决方案:

         

1、参照定位的元素必须是相对定位元素的前辈元素,


2、参照定位的元素必须加入position:relative;


3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

(5)编码实战:

body{

margin0;

padding0;

}

.top-position{

positionfixed;

top0;

height30px;

width500px;

text-aligncenter;

background-colorblueviolet;

}

.div-wh{

height30px;

width500px;

margin30px 0;

text-aligncenter;

background-color:red;

}

/* 相对定位 */

.position-wrap{

positionrelative;

padding50px 0 ;

height50px;

width500px;

text-aligncenter;

background-color:rebeccapurple;

}

.div-wh1{

positionabsolute;

top20px;

height30px;

width500px;

text-aligncenter;

background-color:red;

floatleft;

}

.float{

floatright;

width50px;

height50px;

margin0 10px 10px 10px;

border:1px solid cadetblue;


}

.float1{

floatleft;

width50px;

height50px;

margin0 10px 10px 10px;

border:1px solid cadetblue;


}

<div class="top-position">绝对定位</div>

<div  class="div-wh"> 1</div>

<div  class="div-wh">2</div>

<div  class="div-wh">3</div>

<div class="position-wrap">相对定位

<div  class="div-wh1">固定定位</div>

</div>

<div  class="div-wh">5</div>

<div class="position-wrap">

<div class="float">浮动</div>

<div class="float1">浮动1</div>

(6)拓展思考:

还有没有其他方式来移动元素呢?

(7)参考文献:

https://www.cnblogs.com/huwt/p/10436468.html

https://www.imooc.com/code/3585

(8)更多讨论:

Q1:position 和 float 同时设置会出现什么问题 ?

A1:那么FLOAT的属性就会没用了,优先用position的定位属性。


Q2:相对定位是脱离了文档流吗?                     

  A2:不脱离文档当你移动相对定位的时候,空出的空白处相对定位仍然占领这下面的元素不会自动填充空白处。


Q3:实际运用中尽量少用哪种定位呢,会影响布局?

  A3:少用绝对定位  Absolute 它会影响页面布局特别当你改动的时候 如果把本应该是父元素相对定位改了那么它就会直接按照HTML来进行定位




返回列表 返回列表
评论

    分享到