div元素宽度不定的状况下如何居中显示

本文转载于:猿2048网站div元素宽度不定的状况下如何居中显示php

最近因为工做的缘由碰到一个问题,就是在一个弹窗宽度不定的状况下还能是该弹窗居中显示,思考许久未找到合适办法,因而在网上找到一些办法在此总结记录下来方便之后的学习。css

方法一:兼容IE67,可是当元素宽度大于50%时,会出现滚动条。html

<div class="father">
    <div class="child">这个是须要剧中的元素,宽度不肯定</div>
</div>

.father {
    display: inlien-block; //使.father得宽度适应.child的宽度
    background-color: grey; // 方便看到.father元素
    position: relative;
    left: 50%;
}
.child {
    position: relative;
    left: -50%;
}

效果以下:
浏览器

思路以下:
外层设置为float:left或者display:inline-block,而后设置相对定位,left:50%,这样左边位置就偏移到了中间的位置;而后内层设置相对定位,left:-50%,这样正好向左偏移自身宽度的一半,实现了居中。学习

方法二:兼容ie67网站

<div class="father">
    <div class="child">这个是须要剧中的元素,宽度不肯定</div>
</div>

.father {
    text-align: center; //设置该属性是为了让.father里面的 **内联** 元素居中。
}
.child {
    display: inlne-block;
    border:1px solid red;
     *display: inline; /*主要用于激活IE中的hasLayout属性,兼容IE67*/
    *zoom:1; /*主要用于激活IE中的hasLayout属性,兼容IE67*/
}

效果以下:
spa

思路以下:
外层使用text-align为center是为了让里面的内联元素居中,很显然在外层设置text-align:center后,咱们让里面的元素变成内联元素便可,则能够对里面元素使用display:inline-block;*display:inline(兼容IE6-7)。code

IE浏览器的hasLayout属性,参考:https://baike.so.com/doc/6747002-6961548.html
未知元素水平垂直居中,参考:http://demo.doyoe.com/css/alignment/, https://www.cnblogs.com/jogen/p/5213566.htmlhtm

相关文章
相关标签/搜索