【问题标题】:How do I center align a div within another div如何在另一个 div 中居中对齐一个 div
【发布时间】:2016-08-11 18:24:44
【问题描述】:

我正在尝试将位于另一个 div 中的 div 居中对齐。我想将位于“计划容器”内的“选项” div 垂直居中

提前致谢。

.plan-container {
    width: 960px;
    height: auto;
    margin-top: 62px;
    overflow: hidden;
    background-color: red;
}

.options {
    float: left;
    width: 151px;
    height: 100px;
    background-color: green;
}

.plan {
    float: left;
    width: 220px;
    height: 600px;
    margin-left: 23px;
    background-color: purple;
}

.plan:last-child {
    float: right;
}

.plan-featured{
    width: 300px;
    height: 600px;
    background-color: purple;
}
<div class="plan-container">
  <div class="options">Options</div>
  <div class="plan">Box one</div>
  <div class="plan plan-featured">Box two</div>
  <div class="plan">Box three</div>
</div>

【问题讨论】:

    标签: html css alignment center


    【解决方案1】:

    Vucko 的回答是正确的。我想添加评论,但由于我还没有足够的声誉,所以我将它作为答案发布。

    您可以在需要居中的内部div 上使用vertical-align 属性。此属性仅适用于具有display:inline-blockdisplay:table 的元素。参考实际规格here

    重复 Vucko 的回答:

    .options {
        display: inline-block;
        vertical-align: middle;
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用inline-block 代替float,并且可以使用vertical-align 属性:

      .plan-container>div{
        display: inline-block;
        vertical-align: middle;
      }
      

      JSFiddle

      但是,beware of the whitespace issue

      【讨论】:

        【解决方案3】:

        试试看-

        .plan-container {
            display: flex;
            flex-wrap: wrap; /* optional. only if you want the items to wrap */
            justify-content: center; /* for horizontal alignment */
            align-items: center; /* for vertical alignment */
        }
        

        【讨论】:

        • 这会对齐 .plan-container 中的所有内容吗?
        • 使用这个 css 移除 margin-top 和其他 div 的宽度和高度。