stackoverflow高赞翻译 | 怎样在一个<div>中水平居中另一个<div>

译者注:居中问题是前端布局常见问题,受关注度较高,这次翻译的两份答案分别获赞3000+、1000+。还有部分答案获赞量三位数,就不一一翻译了。
原文地址:https://stackoverflow.com/questions/114543/how-to-horizontally-center-a-div-in-another-div

问题描述:

(如果可行的话,)我们怎样在一个<div>中水平居中另一个<div>?

<div id="outer">  
  <div id="inner">Foo foo</div>
</div>

(Ask by Mosh Feu)

高赞回答:

你可以给内部的<div>添加下面的CSS样式:

#inner {
  width: 50%;
  margin: 0 auto;
}

当然,并不是必须设置width: 50%;,任何小于子div的宽度都可以。margin: 0 auto;才是关键。
如果你要兼容IE8及以上的浏览器,下面的方式可以更好的替代:

#inner {
  display: table;
  margin: 0 auto;
}

它能使内部元素水平居中,而不需要设置width属性。
(Answered by bharadhwaj)

如果你不想给子div一个固定的宽,可以使用下面的方式:

#outer {
  width: 100%;
  text-align: center;
}

#inner {
  display: inline-block;
}

这使得内部div成为可以以文本对齐为中心的内联元素。
(Answered by Alfred)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • title: 面向对象编程01 对象:无序属性的集合,其属性可以包含基本值,对象,或者函数。 理解对象 创建自定义...
    AuthorJim阅读 1,891评论 0 0
  • 与其怨天尤人,不如退而静思,多花点时间,理理自己的羽毛,看看你心中到底更渴望高远的蓝天,还是舒适的窝棚。毕竟,未来...
    乌陵和土明阅读 7,186评论 18 89
  • 昨天看了新闻,我很难过。 那个新妈妈不但放弃了自己,也放弃了孩子。妈妈群里,朋友圈中,各大媒体,都是评论。怪丈夫,...
    米马阅读 1,761评论 2 2