以响应性为中心的div位置

时间:2014-11-29 06:45:24

标签: html css responsive-design positioning

我有一个宽度为80%的div,另一个有20%的div。 第一个div有一个相对于它的另一个div位于顶部中间,我试图添加left: 50;但不工作

<div class="content">
   <div class="circle"></div>
</div>

这是JSFiddle

上的示例

4 个答案:

答案 0 :(得分:3)

您需要将left设置为calc(50% - 30px);,这将.circle水平居中。

+----------------------+--------------------+
|     30px -------·    ·                    |
|                  \ o · o                  |
|                 o |  ·    o               |
|                o<--->·     o              |
|                o     ·     o              |
|                ·o    ·    o·              |
|                ·   o · o   ·              |
|                ·     ·     ·              |
|                ·<---60px-->·              |
|                ·     ·                    |
|<--50% - 30px-->·     ·                    |
|                      ·                    |
|                      ·                    |
|<---------50%-------->·                    |
|                      ·                    |
+----------------------+--------------------+

Fiddle

.circle {
    width: 60px;
    height: 60px;
    position: absolute;
    top: -15px;
    left: calc(50% - 30px);
    right: 50%;
    background-color: #aaa;
    border-radius: 50%;
}

.circle水平居中并垂直添加top: calc(50% - 30px).circle

Fiddle

.circle {
    width: 60px;
    height: 60px;
    position: absolute;
    left: calc(50% - 30px);
    top: calc(50% - 30px);
    right: 50%;
    background-color: #aaa;
    border-radius: 50%;
}

答案 1 :(得分:1)

将第二个div设置为使用&#34; auto&#34;左边距和右边距应该有效:

.circle {
    width: 60px;
    height: 60px;
    position: relative;
    top: -15px;
    margin: 0 auto;
    background-color: #aaa;
    border-radius: 50%;
}

JS Fiddle

答案 2 :(得分:1)

negative margin-left设置为width的{​​{1}}的一半

.circle

演示 - http://jsfiddle.net/Lw3hh7th/3/

答案 3 :(得分:0)

制作.circle inline-block并给予适当的保证金。

.container {
    text-align:center;
}
.circle {
    margin:-15px auto 0 auto;
    display:inline-block;
}

See updated fiddle.