定位,很显然就是确定位置在哪儿,Position属性有以下几个值 1.static 2.relative 3.absolute 4.fixed 第一个static是静态定位,不操作position属性,就默认为是静态定位,除了第一个,取其他三个值的就是定位元素;定位元素会脱离文档流(这个词听起来有点高大上,其实不是不按照默认位置排列就是脱离文档流),当然也不是所有定位元素都脱离了文档流,相对定位除外
脱离了文档流的元素(比如浮动盒子,除了相对定位的定位元素等)
1.文档流中的元素摆放时,会忽略脱离了文档流的元素 2.文档流中的元素计算高度的时候,会忽略脱离了文档流的元素
相对定位(position:relative)
不会让元素脱离文档流,只是让元素在原来位置上进行偏移,偏移的方法是通过四个css属性对其进行设置 left / right /top /bottom 如果左右矛盾时,以left为主,上下矛盾时,以top为主。
对于相对定位,如果你想让元素相对于原来位置进行偏移,我建议尽可能别用,怎么说呢,就好比本体与影子的关系,本体其实没动,影子发生了偏移,那就导致了一个问题,想不起来本体在哪儿了,这就很麻烦,不便于管理,然而相对定位常常搭配着绝对定位出现。
绝对定位(position:absolute)
常用的口诀就是父相子绝,什么意思呢,就是父元素是相对定位,子元素是绝对定位
当一个元素被设置为绝对定位,那这个元素向上找,先找父元素,如果父元素不是相对定位,就在往上找祖先元素,如果祖先元素也不是相对定位,那就是整个网页,在这个期间能找到相对定位元素,那绝对定位就是相对于这个相对元素来进行定位的,也是通过四个css值来进行定位 left /right /top /bottom。这个元素在实际开发中也经常用到,比如鼠标悬停在一个元素上,然后显示下面的内容,这里面用到的技术就有绝对定位。
固定定位(position:fixed)
设置了这个属性的元素是相对于整个浏览器的视口,就比如网页上的小广告,固定在那儿,用到的技术就是固定定位,也是通过四个css值来进行定位 left /right /top /bottom。
网友评论