DIV垂直水平居中

首先了解水平居中与垂直居中

html:

<div class="div-parent parent">
<div class="div-child child">这是div</div>
</div>

默认样式:

<style>
.div-parent{
background-color: pink;
}
.div-child{
color:#fff;
border:#fff solid 1px;
background-color: purple;
}
</style>

水平居中

 text-align:center;

  子元素是块元素则文本居中,行内元素则整体居中

.parent{
    text-align: center;
}
.child{
    display: inline-block;

}
        

 

.parent{
  text-align: center;
} .child{ display: block; }

 

 

 ②

margin:0 auto;

 设置子元素宽度,使得 margin:0 auto 实现div居中

.child{
     width: 100px;
     margin: 0 auto;
   text-align:center;
}

 

 

垂直居中

hight+line-hight

.child{
        height: 100px;
        line-height: 100px;
}

 

实现垂直水平居中

为了更好地看出效果,为父元素添加高度

.div-parent{

  height:100px;

}

一。transform:

子元素top:50%,left:50%,再利用transform,实现div向左向上偏移自身的50%;达到垂直居中效果。

.div-children{
     position:absolute;
     transform:translate(-50%,-50%);
     -webkit-transform: translate(-50%,-50%); /* safari、chrome*/
     -ms-transform:translate(-50%,-50%);   /*ie*/

     left: 50%;
     top: 50%;  /*垂直水平居中,父子div都要设置position,相对绝对都可以*/

     /*所以也可以单独实现居中*/
     transform:translateX(-50%);left:  50%;  /*水平居中*/
     transform:translateY(-50%);top: 50%;   /*垂直居中*/
}
.div-parent{
     position: relative;
}

 

 

 二。table:

父div设置table属性,子div设置table-cell,利用text-align:center,和vertical-align:middle;实现垂直居中,居中的 是子div内的文本

.parent{
    display: table;
    width: 100%;
}
.child{
        display: table-cell;
        vertical-align: middle;
        text-align: center;
}        

 

 三。table-cell:

父div直接设置table-cell属性,利用text-align:center,和vertical-align:middle;实现垂直水平居中。

父div要设置高度宽度值,且不能设置百分比,否则只有inline-block的效果

子div不能设置浮动

.parent{
        display: table-cell;
        height: 100px;
        width: 1200px;
        vertical-align: middle;
        text-align: center;
}
.child{
        display: inline-block;/*居中的是div*/
        display: block;/*居中的是文本*/    
}

 

block:div垂直居中,文本水平居中

inline-block:

 

高度宽度设为百分比:

 

四。FLEX:

弹性盒子

.parent{
        display:flex;
        align-items:center; /*垂直居中*/
        justify-content: center; /*水平居中*/
}/*兼容性不好,不推荐*/                    

 

 

 

五。width,height,margin结合,与一类似,利用定位

.child{
        width: 300px;
        height: 200px;
        margin-left: -150px;/*宽度的一半,很重要,不然不居中,会偏右*/
        margin-top: -100px;/*高度的一半*/
        position: absolute;
        top: 50%;
        left: 50%;
}

 

六。利用margin:auto;

子div元素 设置绝对定位,结合margin:auto

 

.div-child{
        position:absolute;
        margin:auto;
        top:0;
        left:0;
        right:0;
        bottom:0;
}

 

 

 

 

posted @ 2019-11-07 17:06  以深  阅读(561)  评论(0编辑  收藏  举报
TOP