将盒子定在某一个位置 自由的漂浮在其他盒子(包括标准流和浮动的上面)
标准流盒子在最底层 -- 浮动盒子在中间层 -- 定位的盒子在最上层
定位 = 定位模式 + 边偏移
简单说定位的盒子是通过边偏移来移动位置的;
在 css 中,通过 left
,left
,top
,bottom
属性定义元素的边偏移;
边偏移属性 | 示例 | 描述 |
---|---|---|
top | top:80px | 顶端偏移量;定义元素相对于父元素上边线的距离 |
left | left:80px | 左端偏移量;定义元素相对于父元素左边线的距离 |
bottom | bottom:80px | 下端偏移量;元素相对于父元素下边线的距离 |
right | right:80px | 右端偏移量;元素相对于父元素右边线的距离 |
定位盒子有了偏移才有了价值。一般情况下凡是有定位地方必定有边偏移;
在 css 中,通过 position 属性定义元素的定位模式,
选择器 {position: 属性值;}
定位模式是有不同模式的,在不同的情况下,我们用到不同的定位模式
值 | 语义 |
---|---|
static | 静态定位 |
relative | 相对定位 |
absolute | 绝对定位 |
fixed | 固定定位 |
相对定位的特点
绝对定位是元素相对于他父级元素来设置元素的位置
固定定位是绝对定位的一种特殊形式,如果说绝对定位是一个矩形,那么固定定位就是类似于一个正方形;
绝对定位的盒子不能设置 margin:0 auto;实现居中;
在使用定位布局时,可能出现盒子重叠情况;加了定位的盒子,默认后来者居上,后面的盒子会压住前面的盒子;
z-index 特性如下:
注意:z-index 只能用于相对定位,绝对定位和固定元素上,其他标准流,浮动和静态定位无效
可以用浮动 float 默认转为行内高(类似,并不完全一样,因为浮动是脱标的)
绝对定位和固定定位也和浮动类似,默认转换的特性,转换为行内块元素;
一个行内盒子如果加了浮动或者固定定位和绝对定位,不用转换,可以直接给这个盒子设置宽度和高度;
注意:浮动元素、绝对定位元素都不会触发外边距合并的问题,也就是说,给盒子改为浮动或者定位,就不会出现垂直外边距合并的问题了;
原文:https://www.cnblogs.com/article-record/p/12319007.html