未知宽高实现垂直居中

方法一 父table  + table-cell + vertical-align:center

思路:显示设置父元素为:table,子元素为:cell-table,这样就可以使用vertical-align: center,实现水平居中优点:父元素(parent)可以动态的改变高度(table元素的特性)

缺点:IE8以下不支持

.parent1{

    display: table;

    height:300px;

    width: 300px;

    background-color: #FD0C70;

}

.parent1 .child{

    display: table-cell;

    vertical-align: middle;

    text-align: center;

    color: #fff;

    font-size: 16px;

}

方法二:inline-block + vertical-align:middle

思路:使用一个空标签span设置他的vertical-align基准线为中间,并且让他为inline-block,宽度为0

注意 vertical-align 只对行内元素、表格单元格元素生效:不能用它垂直对齐块级元素

.parent span {

    display: inline-block;

    width: 0;

    height: 100%;

    vertical-align: middle;

    zoom: 1;

    *display: inline;

}

.parent .child {

    display: inline-block;

    color: #fff;

    zoom: 1;

    /*BFC*/

    *display: inline;

}

<div class="parent">

    <span></span>

    <div class="child">hello world-2</div>

</div>

缺点:多了一个没用的空标签,display:inline-blockIE 6 7是不支持的(添加上:_zoom1; *display:inline)。当然也可以使用伪元素来代替span标签,不过IE支持也不好,但这是后话了

方法三:absolute + translate

思路:父元素相对定位,子元素绝对定位,距离顶部 50%,左边50%,然后使用css3 transform:translate(-50%; -50%,这里translate的百分比是相对于元素自身)优点:高大上,可以在webkit内核的浏览器中使用缺点:不支持IE9以下不支持transform属性

方法四:flex

思路:使用css3 flex布局优点:简单 快捷缺点:兼容不好,详情见:http://caniuse.com/#search=flex

#23届找工作求助阵地##我的实习求职记录##前端##牛客创作充电计划#
全部评论

相关推荐

卓望数码 Java开发岗 总包23+1~2福利补贴,公积金12%
点赞 评论 收藏
转发
2 2 评论
分享
牛客网
牛客企业服务