CSS定位

162 阅读1分钟

布局与定位的区别:布局是屏幕平面上的,定位是垂直于屏幕的。

  • 一个div的分层

image.png

image.png

根据图片可以看出,浮动元素脱离文档流,其实就是浮起来了一点点。其中文字内容根据出现的顺序来覆盖。

  • position属性
  1. static默认值,待在文档流里。
  2. relative相对定位,升起来,但不脱离文档流。
  3. absolut绝对定位,定位基准是祖先里的非static元素。
  4. fixed固定定位,定位基准是viewport。
  5. sticky粘滞定位。
  • 一些经验:
  1. 如果写了absolute,一般都得补一个relative。
  2. 如果写了absolute或fixed,一定要补top和left。
  3. sticky兼容性很差。 1. position: relative

使用场景:

  1. 用于做位移。
  2. 用于给absolute元素做定位基准元素。
  3. 配合z-index使用:z-index默认值为auto,值越大,层越高。 2. position: absolute

使用场景:

  1. 脱离原来的位置,另起一层,比如对话框的关闭按钮
  2. 鼠标提示(如图:实现当鼠标悬浮按钮上出现提示信息)
  3. 配合z-index使用。

image.png 3. position: fixed

使用场景:

  1. 烦人的广告
  2. 回到顶部按钮
  3. 配合z-index使用。 ———————————————————————————————————————

当元素添加了非static的定位属性,那么它的层就高于其他元素。示意图如下:

image.png

  • 层叠上下文 比喻:每个层叠上下文就是一个新的小世界(作用域),这个小世界里面的z-index跟外界无关,处在同一个小世界的z-index才能比较。负z-index逃不出小世界。

哪些不正交的属性可以创建层叠上下文? 答案: developer.mozilla.org/zh-CN/docs/…

需要记忆的有z-index、flex、opacity、transform。