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

你离开我真会死。 提交于 2019-11-29 00:43:31

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

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

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

<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*/ }

效果如下:

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!