子div在父div中水平垂直居中的问题

总结:

div如何在另一个div中水平垂直居中?
          1)利用父绝子相对,子div   margin:auto; 上下左右都为0
          2)利用父绝子相对,子div   margin:auto;  left:50%;top:50%;margin-top:-子元素高度的一半;margin-left:-子元素宽度的一半;
         3)伸缩盒布局:父元素display:flex;justify-content:center; align-items:center;
         4)利用表格布局:父元素 display:table-cell;  vertical-align:middle;   text-align: center;  子元素:display:inline-block;              

文字如何在div中水平垂直居中?

                 水平:text-align:center;

                 垂直:line-height:父div高度;

方法一、 CSS3 transform和position(元素宽高未知的情况)

宽高未知
.box { width: 400px; height: 400px; background: #ccc; position:relative; } .box span { background: red; position: absolute; left: 50%; top: 50%; color: #fff; transform: translate(-50%, -50%); }

子div在父div中水平垂直居中的问题_第1张图片

方法二、 绝对定位和margin-left:-自身宽度一半,margin-top: -自身高度的一半 (已知宽高)

宽高已知
.box { width: 400px; height: 400px; background: #ccc; position: relative; } .box span { display: inline-block; width: 100px; height: 100px; background: red; text-align: center; line-height: 100px; position: absolute; left: 50%; top: 50%; color: #fff; margin-left: -50px; margin-top: -50px; }

子div在父div中水平垂直居中的问题_第2张图片

方法三、 css3 flex布局

.box { width: 400px; height: 400px; background: #ccc; display:flex; justify-content:center; align-items: center; } .box .child { display: inline-block; width: 100px; height: 100px; background: red; }

子div在父div中水平垂直居中的问题_第3张图片

方法四、 被居中的元素是inline或者inline-block元素

inline和inline-block元素
.box { width: 400px; height: 400px; background: #ccc; display: table-cell; text-align: center; vertical-align: middle; } .box .child { display: inline-block; width: 100px; height: 100px; background: red; }

子div在父div中水平垂直居中的问题_第4张图片

方法五、绝对定位和margin:auto

定高
.box { width: 400px; height: 400px; background: #ccc; position: relative; } .box .child { width: 100px; height: 100px; background: red; text-align: center; color: #fff; line-height: 100px; position: absolute; top:0; right:0; bottom:0; left:0; margin: auto; }

子div在父div中水平垂直居中的问题_第5张图片

方法六、line-height: 父级高度和text-align: center

line-height
.box { width: 400px; height: 400px; background: #ccc; line-height: 400px; text-align: center; font-size: 0; } .box .child { background: red; font-size: 14px; color: #fff; }

子div在父div中水平垂直居中的问题_第6张图片

你可能感兴趣的:(子div在父div中水平垂直居中的问题)