顶部对齐3个浮动div

时间:2013-09-14 00:50:12

标签: css html

我正在尝试获得跨越页面宽度的3个div以对齐到顶部。我的想法是:

Left Div |中心区|右分区

左右两个div占宽度的25%,中心占50%。我使用float来使左右div与屏幕两侧对齐。但是,我的问题是,一旦我将中心div设置为50%,右边的div不再与顶部对齐。设置中心45%的宽度可以在对齐顶部方面获得所需的效果,但是中心div不会占用所有可用空间

简单的HTML演示了这个问题:

<div class="parent">
<div class="title-bar">Title goes Here</div>
<div class="sidecontent left">Some content</div>
<div class="content">More content and more and more More content and more and more More content and more and more</div>
<div class="sidecontent right">Some Content</div>
</div>

CSS

    .title-bar {
    color: @color;
    background-color: @title-color;
    padding: 5px;
    font-family: @font-family;
    margin-bottom: 10px;
    font-size: 20px;
    text-align: center;
    border: 1px solid #D5D5D5;
    border-radius: 5px;
    }
.left {
    float: left;
}
.right {
    float: right;
}
.sidecontent {
    width: 25%;
    border: 1px solid #D5D5D5;
    display: inline-block;
    //padding: 5px;
    vertical-align: top;
    height: 500px;
    background-color: red;
    overflow-y: auto;
}
.content {
    float: left;
    display: inline-block;
    vertical-align: top;
    width: 50%;
}

这是一个证明问题的jsFiddle:http://jsfiddle.net/s6vqC/

任何帮助都会受到赞赏(我是这个css的新手) 感谢。

2 个答案:

答案 0 :(得分:4)

你给了左侧边栏一个边框。如果你给边框它会做25%+ 1px。所以这意味着如果你将它们全部加在一起它将是100%和一些像素,因为你给了它一个边框。 25%+ 50%+ 25%+边框:1px = 100%+ 1px =整个宽度屏幕+ 1px

答案 1 :(得分:2)

@Chanckjh是正确的,它是导致错位的边界。

您可以使用box-sizing: border-box;来阻止边框添加到元素的宽度。

示例:http://jsfiddle.net/s6vqC/1/