html-布局(基础)

总结:https://mp.weixin.qq.com/s/jkTiZdS7wE-Xwv3A3RKwAg
水平居中--------:

1.  inline-block (子)  +  text-align (父)(推荐)

缺点:child里的文字也会水平居中,可以在.child添加text-align:left;

    <div class="parent">
        <div class="child>DEMO</div>
    </div>

    .child{
        display:inline-block;
    }

    .parent{
        text-align:center;
    }

2.  table(子) +   margin(子)  (原理:先将子框设置为块级表格来显示(类似 ),再设置子框居中以达到水平居中)

缺点:不支持ie6、ie7,将div换成table

    <div class="parent">
        <div class="child>DEMO</div>
    </div>

    .child {
        display:table;
        margin:0 auto;
    }

3. absolute (子) + transform(子)(推荐)

缺点:transform属于css3内容,兼容性存在一定问题,高版本浏览器需要添加一些前缀

    <div class="parent">
        <div class="child>DEMO</div>
    </div>

    .parent {
        position:relative;
    }

    .child {
        position:absolute;
        left:50%;
        transform:translateX(-50%);
    }

4.flex (父) (display:flex) +   margin(子)(margin:0 auto)

缺点:不支持ie6、ie7, ie8      适合手机端

5. flex (父) (display:flex) + justify-content(justify-content:center)

缺点:不支持ie6、ie7, ie8      适合手机端


垂直居中---------:

1. table-cell  (父) + vertical-align (父) (推荐)  兼容性较好,ie8以上均支持

    <div class="parent">
        <div class="child>DEMO</div>
    </div>

    .parent {
        display:table-cell;
        vertical-align:middle;
    }

2. absolute (子) + transform(子)(推荐)

缺点:transform属于css3内容,兼容性存在一定问题,高版本浏览器需要添加一些前缀

<div class="parent">
        <div class="child>DEMO</div>
    </div>

    .parent {
        position:relative;
    }
    .child {
        position:absolute;
        top:50%;
        transform:translateY(-50%);
    }

3.  flex (父) align-items (父)      适合手机端

缺点:兼容性存在一定问题

   <div class="parent">
        <div class="child>DEMO</div>
    </div>

    .parent {
        position:flex;
        align-items:center;
    }

水平垂直居中---------:

1. absolute (子) + transform(子)(推荐)

缺点:transform属于css3内容,兼容性存在一定问题,高版本浏览器需要添加一些前缀

    <div class="parent">
        <div class="child>DEMO</div>
    </div>

    .parent {
        position:relative;
    }
    .child {
        position:absolute;
        left:50%;
        top:50%;
        transform:tranplate(-50%,-50%);
    }
2. inline-block (子) + text-align(父) +table-cell(父)  +  vertical-align(父)  (推荐) 兼容性较好
    <div class="parent">
        <div class="child>DEMO</div>

    </div>

    .parent {
        text-align:center;
        display:table-cell;
        vertical-align:middle;

    }
    .child {
        display:inline-block;
    }
3. flex(父)+  justify-content(父) +  align-items(父)   适合手机端
缺点:兼容性存在一定问题
    <div class="parent">
        <div class="child>DEMO</div>
    </div>

    .parent {
        display:flex;
        justify-content:center;
        align-items:center;
    }














猜你喜欢

转载自blog.csdn.net/maomaog16/article/details/80566346