定位分为:
static(默认): 这是页面元素position属性的默认值,元素将按照浏览器对网页中元素的排列规则排列。
注意:此时给元素设置left,right,top,bottom是并没有任何作用的。
relative(相对定位):相对自身原来位置的定位!如果以前没有设置position或者position值为static,那么设置relative后,元素的left,right,top,bottom的位置参照自身原来的位置进行移动。
absolute(绝对定位):这个大家应该都很了解,即脱离文档流的定位。定位参照物为自己的父级,但是自己的父级必须拥有position属性(父级position属性为static也不行,必须为absolute,relative,fixed中的一个)。如果自己的父级没有设置position属性,会一直向上寻找有position属性且不为static的的祖先元素,直到body元素。
fixed(固定定位):这个属性是元素以相对浏览器窗口为基准进行定位的,无论怎样移动你的滑动条,它都会固定在相对于浏览器窗口的固定位置,另外要注意,它的兄弟元素将会在位置排布上忽视它的存在。这个时候用的top,bottom,left,right也是相对于浏览器窗口而言的。
下面分享一下我的心得:
1. fixed会产生兼容问题,老IE6不支持,他是相对于浏览器进行定位的!
2. 父元素有position属性(不为static)和padding值,子元素如果只设置absolute那么不会忽略父元素的padding值,如果设置了left:0,top:0则会忽略父元素的padding值。
3. 分享一个拥有absolute属性的元素的水平居中方法:
方法一: 平常情况下我们都是用left:50%,然后 margin-left:-width/2来设置水平居中,下面再分享一个方法,如果在面试中被问到水平居中的方法,可以补充下面那种,加分项!
方法二: 设置子元素:left:0,right:0,然后设置margin: 0 auto 即可水平居中。
4. 大家要注意设置了position后再设置float、margin会有什么变化,这个很重要,以后再与大家讨论。
相关推荐:
CSS3中伪元素实现气泡框的代码(before、after)
以上就是css的定位有什么?css定位的总结的详细内容,更多请关注php中文网其它相关文章!
……