CSS 定位

58 阅读1分钟

CSS 的定位是垂直于屏幕的

position 属性

  • static 默认值,待着文档流里
  • relative 相对定位,升起来,但不脱离文档流

1.用做位移(很少用)

2.给 absolute 元素做爸爸

  • absolute 绝对定位,定位基准是祖先元素中最近的一个非 static 元素

1.脱离原来的位置,另起一层,比如对话框的关闭按钮

2.鼠标提示

  • fixed 固定定位,定位基准是viewport (视口)手机上尽量不使用,坑很多

1.广告

2.回到顶部按钮

  • stickly 粘滞定位,兼容性较差,一般不用

z-index 属性

控制元素的堆叠顺序,拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

z-index 仅能在定位元素上奏效


/* 字符值 */
z-index: auto; /* 默认值 不会创建新层叠上下文 */
 
/* 整数值 */
z-index: 0;
z-index: 3;
z-index: 289;
z-index: -1;/* 使用负值降低优先级 不能脱离层叠上下文 */
 
/* 全局值 */
z-index: inherit;
z-index: initial;
z-index: unset;

经验

如果写了 absolute 一般要补个 relative

如果写了 absoulute 或 fixed 一般要补个 top 和 left ,某些浏览器不写这两个会位置错乱

善用 left:100% ;善用 left:50% 加负 margin 或加 transform:translatex (-50%)

每个层叠上下文就是个小世界(作用域)

这个小世界里的 z-index 与外界无关,同一个世界的才能比较

z-index / flex / opacity / transform 等属性都可以创建层叠上下文