CSS基础5:定位

148 阅读2分钟

1 div分层

1、布局是屏幕平面上的,定位是垂直于屏幕的;

2、从下到上:定位元素:z-index < 0 --background--border--块级子元素--浮动元素--内联子元素--定位元素:z-index > 0;

3、背景background的范围是border外边沿围成的区域;

4、浮动元素里面的文字会被正常的文字覆盖,而对于正常的文字,后出现的后把先出现的覆盖;

2 position

2.1 static

1、默认值,待在文档流中;

2.2 relative

1、相对定位,升起来,但不脱离文档流;

2、使用场景:用于做位移(很少用);用于给absolute元素做爸爸;

3、配合index:元素z-index为默认值 auto 时,不创建新的层叠上下文,为 0 或 其它数字时创建;

2.3 absolute 绝对定位

1、定位基准是相对于祖先元素中最近的一个定位元素(position值不是static)定位的;

2、使用场景:脱离原来的位置,另起一层,比如:对话框的关闭按钮、鼠标提示;

3、配合 z-index;

4、经验:某些浏览器上如果不写 top/left/bottom/right 会位置错乱,一般要写两个;善用 left:100% 或 bottom:100% ;善用居中:

 left:50%;
 transform:translatex(-50%) ;

2.4 fixed 固定定位

1、定位基准是默认视口(viewport),但是:如果fixed所在的元素有一些特殊样式,如:transform时,则fixed不相对于视口定位;

2、使用场景:回到顶部按钮;

3、配合 z-index ;

4、写了fixed,一定要补top和left;

2.5 sticky

1、粘滞定位,一般不用,兼容性很差;

3 层叠上下文(堆叠上下文)

层叠上下文 - CSS(层叠样式表)| MDN (mozilla.org)

1、position的值为relative、absolute时,z-index的默认值为auto,此时不会创建层叠上下文,需要同时设置z-index的值不为auto,才能创建层叠上下文;position的值为 fixed 时,不需要设置z-index的值,默认创建层叠上下文;

2、默认的层叠上下文是HTML ;

3、z-index小于零的定位元素会位于该元素所处的div的background 后面,但是不会超过该元素所在的层叠上下文的后面;