如何使用可变宽度获得三个间隔相等的div?

时间:2011-07-11 22:55:07

标签: css spacing variable-width

我正在设计一个包含联系表单的网页,您可以看到here

正如您所看到的,页面设计为可变宽度。我希望内容区域的图像,形式和边缘之间有相等的间距,即有四​​个宽度相等的空间。

此刻我设计了它,使图像以DIV为中心,宽度为20%,接触形式以DIV为中心,宽度为60%。这可行,但不是很好,因为随着浏览器的宽度增长,联系人表单和图像之间的间距大于图像与内容区域边缘之间的间距。我想找到一种方法来保持所有空间宽度相等。

以下是相关的CSS:

#box {
    width: 100%;
    min-width: 800px;
}

#left {
    float: left;
    width: 20%;

}

#center {
    float: left;
    height: 100%;
    width: 60%;
}

#right {
    height: 100%;
    margin-left: 80%;
}

.dharma {
    width: 185px;
    margin: 0px auto 0;
    padding-top: 25px;
}

#contact-form {
    width: 471px;
    margin: 25px auto;
}

这是相关的HTML:

<div id="box">

<div id="left">
<div class="dharma"><img src="images/dharma.jpg"></div> 
</div>

<div id="center">
<div id="contact-form">
[form HTML]
</div>
</div>

<div id="right">
<div class="dharma"><img src="images/dharma.jpg"></div>
</div>

</div>  

有人可以帮帮忙吗?

谢谢,

尼克

2 个答案:

答案 0 :(得分:2)

您所描述的问题非常适合可在Chrome,Safari和Firefox中使用的CSS3灵活框布局。您所需要的只是:

#box {
    display: -moz-box;
    display: -webkit-box;
    display: box;
}

#left, #center, #right {
    -moz-box-flex: 1.0;
    -webkit-box-flex: 1.0;
    box-flex: 1.0;
}

不幸的是,这在IE中不起作用,但我希望这仍然有帮助。

答案 1 :(得分:1)

只是设置一条规则让所有方框都有一个额外的边距不起作用?

这样的事情:

#box {
    width: 100%;
    min-width: 800px;
}

#left, #center, #right { /* adds spacing between columns of equal size */
    margin: 0 2%;
}

#left {
    float: left;
    width: 16%;  /* reduced by 4% for margins */

}

#center {
    float: left;
    height: 100%;
    width: 56%; */ reduced by 4% for margins */
}

#right {
    height: 100%;
    margin-left: 80%;
}