css定位有哪些?

定位分为:

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会有什么变化,这个很重要,以后再与大家讨论。

猜你喜欢

转载自blog.csdn.net/qq_31906983/article/details/81509371