【问题标题】:Top align 3 floating divs顶部对齐 3 个浮动 div
【发布时间】:2013-09-14 00:50:11
【问题描述】:

我试图让 3 个跨越页面宽度的 div 与顶部对齐。这个想法是:

左div|中心区 |右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 的新手) 谢谢。

【问题讨论】:

  • 边框样式导致问题

标签: css html


【解决方案1】:

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

【讨论】:

  • 这似乎是问题所在!谢谢。无论如何要指定边框,以免它们增加宽度?
【解决方案2】:

@Chanckjh 是正确的,这是导致错位的边框。

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

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

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    相关资源
    最近更新 更多