position属性用于指定一个元素在文档中的定位方式。
文档流normal flow
就是文档正常的流动方向;
- 从左到右(inline元素例如span元素,直到这一行排满了,才会换行),不能用width指定宽度;也不用height;
- 从上到下(block元素例如div元素,每个元素占一行,不会出现并排的情况),可以用width计算宽度;也可以设置height; 3.还有一种结合inline和block的特征的inline-block元素,可以用width和height。就是在span 元素中设置diaplay:inline-block就可以了。
当内容大于容器时
当内容的宽度和高度大于容器时,会溢出; 可用overflow来设置是否显示滚动条; auto是灵活设置; scroll是永远显示; hidden是直接隐藏溢出来的部分; visible是直接显示出溢出的部分; overflow可以分为overflow-x和overflow-y
脱离文档流
float position:absolute/fixed 就是加了上面属性后,文档就不再span的这个盒子里。
position的取值
static默认值,待在文档流里面; relative相对定位,升起来,但不脱离文档流; absolute绝对定位,定位基础是祖先里的非static; fixed固定定位 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 若单独使用relative,
position:absolute
若只使用abolute属性,则此模块的宽度随着内容的大小而改变; 脱离文档流,根据上下左右属性,以浏览器的左上角移动;
position:fixed
网页的右上角是 X 一般用fixed;