美文网首页
CSS 元素水平,垂直居中

CSS 元素水平,垂直居中

作者: 晚溪呀 | 来源:发表于2019-03-16 14:15 被阅读0次

    HTML

        <div class="father">
            <div class="son"></div>
        </div>
    

    1、利用 absolutetranslate

    CSS

            .father{
                position: relative;
                margin: 0 auto;
                width: 200px;
                height: 200px;
                background: red;
            }
    
            .son{
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                width: 100px;
                height: 100px;
                background: blue;
            }
    

    2、利用 absolute 和 负的margin

    CSS

            .father{
                position: relative;
                margin: 0 auto;
                width: 200px;
                height: 200px;
                background: red;
            }
    
            .son{
                position: absolute;
                top: 50%;
                left: 50%;
                margin-top: -50px;
                margin-left: -50px;
                width: 100px;
                height: 100px;
                background: blue;
            }
    

    3、利用 absolutetop right bottom leftmargin: auto

    CSS

            .father{
                position: relative;
                margin: 0 auto;
                width: 200px;
                height: 200px;
                background: red;
            }
    
            .son{
                position: absolute;
                top: 0;
                right: 0;
                bottom: 0;
                left: 0;
                margin: auto;
                width: 100px;
                height: 100px;
                background: blue;
            }
    

    4、利用 display: tabledisplay: table-cell

    (1)display: tablepadding 会失效
    (2)display: table-rowmargin、padding 同时失效
    (3)display: table-cellmargin 会失效
    (4) 表格中的单元格中的 div 设置宽度无效,是因为 div 被设置为 display: table-cell ,后将其修改为 display: block 则设置的宽度生效

    CSS

            .father{
                display: table-cell;
                text-align: center;
                vertical-align: middle;
                width: 200px;
                height: 200px;
                background: red;
            }
    
            .son{
                display: inline-block;
                width: 100px;
                height: 100px;
                background: blue;
            }
    

    效果

    table-cell 居中

    5、通过 font-size 实现居中

    IE7 以下有效

    font-size 值为 height / 1.14

    HTML

        <div class="father">
            <span class="son"></span>
        </div>
    

    CSS

            .father{
                width: 200px;
                height: 200px;
                font-size: 175.4px;  /* height / 1.14 */
                text-align: center;
                background: red;
            }
    
            .son{
                display: inline-block;
                zoom: 1;
                vertical-align: middle; /*inline 和 inline-block 才能设置该属性*/
                font-size: 12px; /* 初始化字体大小 */
                width: 100px;
                height: 100px;
                background: blue;
            }
    

    相关文章

      网友评论

          本文标题:CSS 元素水平,垂直居中

          本文链接:https://www.haomeiwen.com/subject/nrajmqtx.html