块级元素水平垂直居中


案例说明块级元素水平垂直居中利用css设置有三种方法,再把div(class='two')里面的spn内容水平垂直居中设置:

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>块级元素水平垂直居中title>
    <style>
        /*方法一*/
        .one{
            width: 200px;
            height: 200px;
            background-color: red;
            position: relative;
        }

        .two{
            width: 100px;
            height: 100px;
            background-color: green;
            margin: auto;
            position: absolute;
            top: 0;
            bottom: 0;
            right: 0;
            left: 0;
            line-height: 100px;
            text-align: center;

        }

        /*方法二*/
        .one{
            width: 200px;
            height: 200px;
            background-color: red;
            display: table-cell;
            vertical-align: middle;
            text-align: center;
        }
        
        .two{
            width: 100px;
            height: 100px;
            background-color: green;
            display: inline-block;
            line-height: 100px;
        }

        /*方法三*/
        .one{
            width: 200px;
            height: 200px;
            background-color: red;
            position: relative;
        }
        
        .two{
            width: 100px;
            height: 100px;
            background-color: green;
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -50px;
            margin-top: -50px;
            text-align: center;
            line-height: 100px;
        }

    style>
head>
<body>
<div class="one">
    <div class="two"><spn>文字居中spn>div>
div>
body>
html>

注:方法2里面的 table-cell需要配合使用vertical-align

display: table-cell; 指的是:把元素会作为一个表格单元格显示

vertical-align:  设置元素的垂直对齐方式.属性值:

baseline       默认。元素放置在父元素的基线上。
sub              垂直对齐文本的下标。
super           垂直对齐文本的上标
top               把元素的顶端与行中最高元素的顶端对齐
text-top        把元素的顶端与父元素字体的顶端对齐
middle         把此元素放置在父元素的中部。
bottom      把元素的顶端与行中最低的元素的顶端对齐。
text-bottom      把元素的底端与父元素字体的底端对齐。

vertical-align: middle; 把此元素放置在父元素的中部