总结一下:
1、父高未知,子高未知
(1)margin:auto;

// 定位会失高
.parent{

position:relative;

}

.child{

position:absolute;

margin:auto;

top:0;

left:0;

right:0;

bottom:0;
}
// 或者 这种不失高
.parent{
display:flex;
}

.child{
margin:auto;
}

(2)利用display:table-cell

.parent{

display:table-cell;

vertical-align:middle;

text-align:center;

}

.child{

display:inline-block;

}

(3)利用display:flex;设置垂直水平都居中;

.parent{

display:flex;

justify-content:center;

align-items:center;

}

(4)利用transform

.parent{

position:relative;

}

.child{

position:absolute;

top:50%;

left:50%;

transform:translate(-50%,-50%);

}

2、父高未知,子高已知(条件1的所有都可用)
1、定位

.parent{

position:relative;

}

.child{

position:absolute;

top:50%;

left:50%;

margin-top:-50px;

margin-left:-50px;

}

3、父高已知,子高已知(条件1和2的所有都可用)
(1)计算父盒子与子盒子的空间距离(这跟方法一是一个道理);

//计算方法:父盒子高度或者宽度的一半减去子盒子高度或者宽的的一半(200px)。
.child{
margin-top:200px;
margin-left:200px;
}

(2)利用calc计算

.parent{

position:relative;

}

.child{

position:absolute;

top:calc(200px);//(父元素高-子元素高)÷ 2=200px

let:calc(200px);//(父元素宽-子元素宽)÷ 2=200px

}

暂时记录这么多,下次继续更新
注:方法是死的,人是活的;对于不同问题有不同的解决方式

posted on 2019-12-16 16:45  ljyyjj  阅读(368)  评论(0编辑  收藏  举报