如何在父DIV中居中对齐浮动DIV?

时间:2014-09-04 16:33:16

标签: html css

我遇到一个问题,我在父div中有三个div需要居中对齐。我不明白为什么文本的中心对齐不是通常的魔术?

我在Demo fiddle

重新创建了这个问题

<div class="container_alt">

    <div class="pricing_options_col">

        <div class="pck1">pck1</div>

        <div class="pck2">pck2</div>

        <div class="pck3">pck3</div>

    </div>

</div> 

.container_alt{
    max-width: 1000px;
    margin: 0 auto;
}

.pricing_options{
    width: 100%;
    background-color: #fff;
    height: auto;
    overflow:auto;
    text-align:center;  
    display:inline-block;
}

.pricing_options_col{
    width: 100%;
    max-width:1000px;
    margin: 0 auto;
    text-align:center;
    padding:100px 0;
    display:inline-block;
}


.pck1{
    float: left;    
    margin: 0 auto;
    width: 200px;
    background-color: green;    
    border-radius: 6px;
    box-sizing:border-box;
    padding: 20px;          
}

.pck2{
    float: left;    
    margin: 0 auto;
    width: 400px;
    background-color: red;
    border-radius: 6px;
    box-sizing:border-box;
    padding: 20px;  
    -webkit-box-shadow: 0px 0px 20px 0px rgba(50, 50, 50, 0.75);
    -moz-box-shadow:    0px 0px 20px 0px rgba(50, 50, 50, 0.75);
    box-shadow:         0px 0px 20px 0px rgba(50, 50, 50, 0.75);
    z-index: 999999;    
}

.pck3{
    float: left;    
    margin: 0 auto;
    width: 200px;
    background-color: pink; 
    border-radius: 6px;
    box-sizing:border-box;
    padding: 20px;                  
} 

3 个答案:

答案 0 :(得分:2)

从css中移除float: left; .pck1 .pck2 .pck3

更新:我想这就是您要找的内容:

.pricing_options_col{
    width: 800px;
    margin-left:auto;
    margin-right:auto;
    max-width:1000px;
    margin: 0 auto;
    text-align:center;
    padding:100px 0;
    display:inline-block;
}

答案 1 :(得分:1)

对于.pck1pck2pck3,请移除float:left并添加display:inline-block

浮动元素用于将其一直移动到一侧或另一侧(显然与嵌入相反)。防止&#34;堆叠&#34;是其中的副产品,但还有其他方法可以防止元素堆叠。默认情况下,div有display:block,这意味着他们每个人都会在自己的行上显示(&#34;堆叠&#34;)。通过将其更改为display:inline-block,它们会在线显示。

这是demo

答案 2 :(得分:0)

试试这个。这是因为您的parentchild都持有width的{​​{1}}

100%

DEMO