css - 怎么实现css垂直和水平居中?

标签 css layout

我怎样才能使子项在父项中垂直居中?

并且,child 和 parent 的宽度和高度是固定的,但未知。

我是怎么实现的?

<div class="parent">
   <div class="child"></div>
</div>

最佳答案

我最喜欢的将盒子垂直和水平居中的技术需要两个容器。


外容器

  • 应该有 display: table;

内容器

  • 应该有 display: table-cell;
  • 应该有 vertical-align: middle;
  • 应该有 text-align: center;

内容框

  • 应该有 display: inline-block;
  • 应重新调整水平文本对齐方式,例如。 text-align: left;text-align: right;,除非你希望文本居中

此技术的优雅之处在于,您可以将内容添加到内容框中而无需担心其高度或宽度!

只需将您的内容添加到内容框中即可。

演示

body {
    margin : 0;
}

.outer-container {
    position : absolute;
    display: table;
    width: 100%; /* This could be ANY width */
    height: 100%; /* This could be ANY height */
    background: #ccc;
}

.inner-container {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}

.centered-content {
    display: inline-block;
    text-align: left;
    background: #fff;
    padding : 20px;
    border : 1px solid #000;
}
<div class="outer-container">
   <div class="inner-container">
     <div class="centered-content">
        <p>You can put anything here</p>
        <p>Yes, really anything!</p>
     </div>
   </div>
</div>

另见 this Fiddle !

关于css - 怎么实现css垂直和水平居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37097732/

相关文章:

css - 为什么页面在 IE8 和 chm 中显示不同(CSS "display: inline-block"问题)

java - setHorizo​​ntalGroup() 的参数

c# - TextWrapping、TextTrimming、居中对齐和垂直拉伸(stretch)

ios UICollectionView 布局(部分的边距和移动)

javascript - 如何在悬停时隐藏图像的标题

html - 具有线性渐变、阴影和文本轮廓的 CSS 文本?

css - 使用水平形式对齐 Bootstrap 文本框

html - 不显示空表格单元格

Android - 标准布局文件夹,哪个屏幕尺寸?

html - 创建一个 3 列横幅,当浏览器调整大小时是动态的,在最小宽度之后它以中间列为中心