1.背景介绍
position 是CSS用来为HTML文档的一些元素提供定位的属性,定位的基本思想很简单,它允许你定义元素
框相对于其正常位置应该
出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。
常规取值: 1.static(静态) 2.Relative(相对)
3.Absolute(绝对) 4.fixed(固定)
2.知识剖析
static(静态):HTML元素的默认值,不受top、bottom、left、right属性影响,元素出现在正常的文档
流中
Relative(相对):相对定位。
特点:不脱离文档流的布局,受top、bottom、left、right属性影响,只改变自身的位置,在文档流原先的
位置遗留空白区域。定位的起始位置为此元素原先在文档流的位置。
Absolute(绝对):绝对定位
特点:脱离文档流的布局,遗留下来的空间由后面的元素填充。定位的起始位置为最近的父元素(position不
为static),否则为html文档本身。
fixed(固定):固定定位。
特点:类似于absolute,但不随着滚动条的移动而改变位置。元素的位置相对于浏览器窗口是固定位置。
3.常见问题
相对定位与绝对定位的搭配使用效果?
4.解决方案
父容器使用相对定位,子元素使用绝对定位后,这样子元素的位置不再相对于浏览器左上角,而是相对于父窗口左
上角,若无非static祖先,以初始包含块定位,在浏览器里,根元素的包含块(HTML)为初始包含块,只是一般情
况下看上去像是body区域。
问题一:层模型的定位区别
绝对定位(position:absolute)是元素相对于浏览器,就是一整个页面;
相对定位(position:relative)是元素参照自己原来的位置,但是元素移动了以后,原来的位置还是该元素的,,也就是说相对定位就是移动后一个元素占了两个位置;
固定定位(position:fixed)是元素相对于视图,就是窗口,固定在视图窗口的某个位置,即使滚动条上下滚动,我们所看到的元素的位置不变。
问题二:怎样控制定位元素的相互覆盖?
定位覆盖的优先级还是先取决于父辈元素的z-index的大小,然后才是自己的z-index的大小。
问题三:position定位需要注意哪些问题?
1、float属性不可以和position属性共用,切记!
2、使用absolute时记得给父元素加relative
3、除了用left和top外,还有right和bottom,活学活用
4、能不用position就不用position,毕竟容易把布局搞乱
5、Javascript中调用position的方法是:div.style.positio=”absolute”类似 div是变量名