0

使用 CSS,我想将我在一个 div 中的两个“框”水平居中。盒子是绝对定位的。

这是 JSFiddle:http: //jsfiddle.net/p4sA3/8/

在不使用特定宽度的情况下如何实现这一点?

HTML:

<button id="change">Change</button>
<div id="total-wrap">
    <div id="hello-wrap" class="bunch">
        <div id="box"> 
            <p> Hello, this is text1 </p>
        </div>
        <div id="box">
            <p> Hello, this is text2 </p>
        </div>
    </div>
    <div id="goodbye-wrap" class="bunch">
        <div id="box"> 
            <p> Goodbye, this is text1 </p>
        </div>
        <div id="box">
            <p> Goodbye, this is text2 </p>
        </div>
    </div>
</div>

CSS:

#total-wrap {
    border:1px solid #000;
    height:500px;
}
#box {
    position:relative;
    display:inline-block;
    width:300px;
    height:100px;
    background-color:yellow;
    margin:10px;
}
.bunch {
    position: absolute;
    text-align:center;
}
4

5 回答 5

4

我会这样做,left:0;因为right:0它们是绝对定位的。

演示http://jsfiddle.net/kevinPHPkevin/p4sA3/19/

.bunch {
    position: absolute;
    text-align:center;
    left:0;
    right:0;
}
于 2013-05-25T20:20:08.783 回答
0

如果你想使用 jQuery:

演示

keepCentered = function() { 
    $('#hello-wrap').css({'margin-left':($('#total-wrap').width()-$('#hello-wrap').width())/2});
    $('#goodbye-wrap').css({'margin-left':($('#total-wrap').width()-$('#goodbye-wrap').width())/2});
}
$(document).ready(keepCentered);
$(window).bind('resize', keepCentered);
于 2013-05-25T19:44:57.120 回答
0

解决方案:

        #total-wrap {
            border:1px solid #000;
            height:500px;
        }
        #box {
            display:inline-block;
            width:300px;
            height:100px;
            background-color:yellow;
            margin:10px;
            text-align:center;
        }
        .bunch {
            text-align:center;
        }
于 2013-05-25T19:25:30.817 回答
0

这是你想要的吗?

#box {
    position:relative;
    display:inline-block;
    width:100px;
    height:100px;
    background-color:yellow;
    margin:10px;
}

演示:http: //jsfiddle.net/p4sA3/11/

问题是,只要宽度的总和超过容器,第二个 div 将位于第一个下方

在另一个演示中,我没有使用宽度:http: //jsfiddle.net/p4sA3/13/

于 2013-05-25T19:36:05.720 回答
0
<div id="wrap">
    <div id="left">Box1</div>
    <div id="right">Box2</div>
</div>
#wrap {
    background: #e7e7e7;
    padding: 40px; 
    text-align: center;
    width: auto;  
}

#left, #right {
     background: yellow;
     display: inline-block;    
     padding: 20px;   
}
于 2013-05-25T19:32:10.337 回答