定位

185 阅读3分钟

定位:

定位:用来改变元素的位置
定位属性:position
坐标属性: left right top bottom
定位属性值:
static: 默认定位,不能设置坐标
	
absolute: 绝对定位
    脱离文档流
    能设置坐标
    默认参考浏览器窗口改变自己的位置
    或者参考最近的有定位的父级元素(默认定位除外)
	
relative: 相对定位
    占据文档流
    能设置坐标
    参考自身加载到页面中的初始位置
fixed: 固定定位
    脱离文档流
    能设置坐标
    参考当前浏览器窗口
    在页面中固定不动
sticky: 粘性定位
     结合了相对定位和固定定位的特征
层级关系:
   必须添加了定位的元素才能改变层级关系,默认定位除外
   并列关系: 都能修改层级
   嵌套关系: 只能改子元素的层级关系
   z-index:层级关系;
        auto 默认值
        number 具体数字,数字越大,层级越高,反之越低,可以为负数
		
包含块:
   包含块:给添加了绝对定位的子元素设置参考物,从而改变子元素的位置
1:  嵌套关系
2:  父元素设置positionrelative;
    子元素设置position:absolute;
相对定位和绝对定位的区别:
1: 是否占据文档流: 相对定位占据文档流,绝对定位脱离文档流
2: 参考物不同: 相对定位参考自身加载到页面中的初始位置
   绝对定位默认参考浏览器窗口或者参考有定位的父元素(默认定位除外)
定位居中:
方式一:
    position:absolute;
    left:0;
    right:0;
    top:0;
    bottom:0;
    margin:auto;

方式二:
    position:absolute;
    left:50%;
    margin-left:-宽度的一半;
    top:50%;
    margin-top:-高度的一半;
锚点:
<a href="#name">点击位置</a>
<标签 id="name">跳转位置</标签>
透明度:
	opacity:0.4; 取值范围:0-1
	filter:alpha(opacity=40); 取值范围: 0-100  ie低版本识别
BFC
BFC: 块级格式化上下文,内部的元素不会影响到外面的元素
触发方式:
    1: 根元素是最大的BFC
    2: 添加浮动,且浮动不为none
    3: 添加overflow,且值不为visible
    4: 添加display,且值为inline-block, table-cell, table-caption ,flex ,inline-flex
    5: 添加position,且值为absolute 或者 fixed
应用:
    1: 解决垂直方向的外边距相遇重合问题
    2: 两列布局
    3: 解决高度塌陷的问题
	高度塌陷: 父元素未设置高度,子元素设置了浮动,父元素将高度消失,造成页面布局混乱
		
BFC特性:
    BFC内部的元素会在垂直方向排列
    BFC内的子元素的左外边距挨着BFC的左边框
    BFC内的子元素不会影响到外边的元素

    同属于同一个BFC内的子元素垂直距离由margin决定,相邻的两个子元素的margin相遇会重合
    BFC元素不会与浮动元素重合
    BFC内的子元素将参与高度计算