如何在div中居中(V,H)div

时间:2014-03-11 14:04:03

标签: css html5 html

我的问题是我希望将两个div并排拆分(50%宽度)。在它们内部,我想放置另一个div并使它们同时垂直和水平对齐。 我认为可以在没有JS的情况下制作它,但我无法做到这一点。 任何人都可以将我的两个圆圈放在他们的父DIV的中心(V,H),它们是宽度的50%和高度的100%,这样当我调整窗口大小时,圆圈将始终位于中心(并且旁边)现在一边)?

这是我的代码:

<div id="container">
  <div class="left">
    <div class="kolo1">
        sometext1
    </div>
  </div>
  <div class="right">
    <div class="kolo2">
       sometext 2
    </div>
  </div>
</div>

这是一个JSFiddle:http://jsfiddle.net/m5LCx/

先谢谢你解决我的任务:)

6 个答案:

答案 0 :(得分:4)

实际上非常简单,您只需要模拟类似表格的行为:

  1. HTML标记:

    <div id="container">
        <div> 
            <div class="half left">
                <div class="circle">hello</div>
            </div>
            <div class="half right">
                <div class="circle">world</div>
            </div>
        </div>
    </div>
    
  2. CSS样式:

    html, body {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
    }
    
    #container {
        display: table;
        width: 100%;
        height: 100%;
    }
    
    #container > div {
        display: table-row;
    }
    
    .half {
        display: table-cell;
        width: 50%;
    
        text-align: center;
        vertical-align: middle;
    }
    
    .half.left {
        background: red;
    }
    
    .half.right {
        background: blue;
    }
    
    .circle {
        display: inline-block;
        padding: 50px;
    
        border-radius: 50%;
    }
    
    .half.left .circle {
        background: blue;
    }
    
    .half.right .circle {
        background: red;
    }
    
  3. 最终结果http://jsfiddle.net/m5LCx/11/

    result

答案 1 :(得分:2)

在这里工作http://jsfiddle.net/3KmbV/

在.left和.right类中添加position: relative,然后在margin: auto; position: absolute; top: 0; left: 0; right: 0; bottom: 0;.kolo1类中添加.kolo2。并从.left

中删除顶部位置

试试吧

body {
    background-color: #006666;
    margin: 0 auto;
    height: 100%;
    width: 100%;
    font-size: 62.5%;
}
#container {
    width: 100%;
    min-height: 100%;
    height: 100%;
    position: absolute;
}
.left {
    width: 50%;
    min-height: 100%;
    float: left;
    top: 0;
    background-color: #660066;
    position: relative;
}
.right {
    width: 50%;
    min-height: 100%;
    float: right;
    min-height: 100%;
    background-color: #003366;
    position: relative;
}
.kolo1 {
    background-color: #0f0;
    width: 10em;
    height: 10em;
    border-radius: 5em;
    line-height: 10em;
    text-align: center;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
.kolo2 {
    background-color: #00f;
    width: 10em;
    height: 10em;
    border-radius: 5em;
    line-height: 10em;
    text-align: center;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

答案 2 :(得分:1)

Another fiddle。这个使用带有负边距的绝对定位来确保圆圈始终位于中心。 CSS看起来像这样

.kolo1 {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -5em; /* this must be half of the width */
  margin-top: -5em; /* this must be half of the height */
}

正如@Tushar指出的那样,您还需要将父元素的位置设置为相对。

答案 3 :(得分:1)

您可以将postion: relative提供给.left.right

并将以下CSS提供给.kolo1.kolo2

 margin: -5em 0 0 -5em;
    position: absolute;
    left: 50%;
    top: 50%;

Updated demo

答案 4 :(得分:0)

Working Fiddle

.kolo1 {
background-color: #0f0;
width: 10em;
height: 10em;
border-radius: 5em;
line-height: 10em;
text-align: center;
margin: 50% auto 0 auto;
}

.kolo2 {
background-color: #00f;
width: 10em;
height: 10em;
border-radius: 5em;
line-height: 10em;
text-align: center;
margin: 50% auto 0 auto;
}

答案 5 :(得分:0)

尝试为父padding-top:50%添加div(包含课程leftright