NotionNext
NotionNext
编程爱好者
/互联网从业者
/知识分享博主
认知决定态度,态度决定选择,选择决定人生

CSS 定位

发布于:2021-12-17|最后更新: 2023-8-29|
type
status
date
slug
summary
tags
category
icon
password

CSS定位

布局和定位有啥区别?

  • 布局是屏幕屏幕平面上的
  • 定位是垂直于屏幕的
div的分层div是有立体结构的,从下面到上面依次是:background, border, 块级子元素, 浮动元素, 内联子元素(文字内容)

position属性

position
  • static默认值,待在文档流里
  • relative相对定位,升起来,但不脱离文档流
  • absolute绝对定位,定位基准是祖先里的非static元素
  • fixed固定定位,定位基准是viewport (视口)
  • sticky粘滞定位
经验
  • 如果你写了absolute,一般都得补一个relative
  • 如果你写了absolute或fixed,一定要补top和left
  • sticky兼容性很差,主要用于面试装逼

position: relative

使用场景
  • 用于做位移(很少用)
  • 用于给absolute元素做爸爸
配合z-index
  • z-index: auto 默认值,不创建新的层叠上下文
  • z-index: 0/1/2
  • z-index: -1/-2
  • 默认每一个元素的z-indexd的值是auto,auto计算出来的值是0,但是你不能写0
经验
  • 写z-index:9999的都是彩笔
  • 学会管理z-index

position: absolute

使用场景
  • 脱离原来的位置,另起一层,比如对话框的关闭按钮
  • 鼠标提示
配合z-index
经验
  • 很多彩笔都以为absolute是相对于relative定位的 , absolute是相对于祖先元素中最近的一个定位元素定位的 ,定位元素:不是static的元素
  • 某些浏览器上如果不写top/left会位置错乱
  • 善用left:100%
  • 善用left: 50%;加负margin
white-space: nowrap 文字内容不准换行

position: fixed

使用场景
  • 烦人的广告
  • 回到顶部按钮
配合z-index
经验
  • 手机上尽量不要使用这个属性,坑很多
  • 不信你搜一下移动端fixed

层叠上下文

比喻
  • 每个层叠上下文就是一个新的小世界(作用域)
  • 这个小世界里面z-index 跟外界无关
  • 处在同一个小世界的z-index才能比较
  • 默认的层叠上下文是HTML元素
哪些不正交的属性可以创建它
  • MDN文档有写
  • 需要记忆的有z-index/flex/opacity/transform
  • 知道这些知识的面试官也不太多,不用花时间背
opcity影响整个元素的透明度,background只影响元素的背景颜色
负z-index与层叠上下文的关系
  • 负z-index逃不出当前层叠上下文
 
 
CSS 布局CSS 动画