开发者社区> 问答> 正文

父级元素以及子元素高度宽度未知如何实现水平垂直居中?

.child{

position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);  /* 使用css3的transform来实现 */

}

这个方案在父级元素们没有设置position为relative的时候,相对于html是水平垂直居中的,但是如果父级元素指定position为relative,并且高度不定的时候,无法实现垂直居中。

我想实现这样的效果:
父级元素占浏览器宽50%,高100%,在浏览器左边,子元素在父元素中水平垂直居中。
screenshot
请问这样可以实现吗?

展开
收起
杨冬芳 2016-06-06 15:18:58 2427 0
1 条回答
写回答
取消 提交回答
  • IT从业

    screenshot

    HTML

    <body>
        <div id="parent">
            <div class="wrapper"><!-- 若使用position居中对齐,需要嵌套一层 -->
                <div id="child">
                    子元素子元素子元素子元素子元素
               </div>
           </div>
        </div>
        <div id="main">
            正常文档流
        </div>  
    </body>

    CSS(请无视*选择符)

    *{
        padding: 0;
        margin: 0;
    }
    #main{
        padding-left: 50%;
    }
    body{
        background: #faa;
        height: 1000px;
    }
    #parent{
        width: 50%;
        height: 100%;
        position: fixed;
        background: #cee;
        color: #fff;
    }
    #parent .wrapper{
        width: 100%;
        height: 100%;
        position: relative;
    }
    #child{
        width: 320px;
        height: 320px;
        background: #543;
        position: absolute;
        top: 50%;
        left: 50%;
        margin: -160px 0 0 -160px;/* 考虑兼容性,使用margin */
    }
    

    点击预览https://jsfiddle.net/w7c4pda2/点击预览

    2019-07-17 19:28:44
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载