将元素水平垂直居中,只写top:50% left:50%显然不对

一、通过设置margin-left,maigin-top为负数改变位置

#box1{
    height:200px;
    width:200px;
    position: absolute;
    left:50%;
    top:50%;
    background-color: aquamarine;
    margin-left: -100px;
    margin-top:-100px;
   /*transform: translate(-50%,-50%);*/
}

二、利用transform里面的translate属性

Transform是css制作动画的属性之一。css3的动画属性:变形(transform)、转换(transition)和动画(animation)。transform字面上就是变形,改变的意思。在CSS3transform主要包括以下几种:旋转rotate扭曲skew缩放scale移动translate以及矩阵变形matrix

我们使用的就是translate

#box1{
    height:200px;
    width:200px;
    position: absolute;
    left:50%;
    top:50%;
    background-color: aquamarine;
    /*margin-left: -100px;
    margin-top:-100px;*/
   transform: translate(-50%,-50%);
}

transform:translate(-50%,-50%)是把元素沿着横向x轴,y轴移动自身宽度的50%,一般是从左侧为开始点也就是0点。而数值是-50%,所以是从左侧0点向左移动自身宽度的50%,向上移动自身宽度的50%。

Last modification:November 18th, 2019 at 09:55 pm
如果觉得我的文章对你有用,请随意赞赏