将div放在另外两个之间

时间:2012-12-07 15:48:23

标签: css css3 css-float sass

我垂直有3个div。第一个应该有100%的宽度,第二个应该有一个宽度为283px的图像,第三个div应该有100%的宽度。 有谁知道如何将图像div放在另外两个div 100%的中间?

我试过这个,但不适合我

<div class="content">
<div class="first">1</div>
<div class="third">3</div>
<div class="second">2</div>
</div>

.first{
  width:100%;
  float:left;
  background:yellow;
}
.third{
   width:100%
   float:right;
   background:pink;
}
.second{
   width:283px;
   overflow:hidden;
   background:blue;
}​enter code here

3 个答案:

答案 0 :(得分:2)

如果你的目的是将divs水平放置在彼此旁边,那么你不能将它们中的任何一个设置为100%的宽度,因为彼此相邻的所有元素的总和只能达到100%。

如果您的网站固定宽度超过最简单的解决方案,则将左右div的宽度(以像素为单位)设置为(网站的宽度 - 283)/ 2.然后它们会相互浮动。您也可以使用%。

执行此操作

但是,如果你的网站是流畅的,那么你需要计算所有3个div的百分比,即每个33%,但这意味着中间不会是283px。

我能想到的唯一方法就是在页面加载后使用Javascript来调整元素的大小,这样就可以获得浏览器的尺寸并全力以赴。

答案 1 :(得分:0)

阅读了几次,我想我得到了你想做的事。

你希望他的中间div在另外两个div之间居中。

你需要给div一个像这样的类:

 .middlediv
 {
    width: 283px;
    margin-left: auto;
    margin-right: auto;
 }

也可以这样写:

 .middlediv
 {
    width: 283px;
    margin: 0px auto;
 }

答案 2 :(得分:0)

您的问题不明确,所以我做了两种可能的解释:http://jsfiddle.net/EbBzY/

HTML

<h1>Option 1</h1>
<div class="main">
    <div class="content">
        <div class="first">1</div>
        <div class="second">2</div>
        <div class="third">3</div>
    </div>
</div>

<h1>Option 2</h1>
<div class="content">
    <div class="first">1</div>
    <div class="second">2</div>
    <div class="third">3</div>
</div>

CSS

.main{
    display:table;
    width:100%;
    margin-bottom:100px;
}
.main .content{
    display:table-row;
}
.main .content div{
    display:table-cell;
}

.first{
    background:yellow;
}
.third{
    background:pink;
}
.second{
    background:blue;
    width:283px;
    margin:auto;
}