处理css html div垂直和水平对齐

时间:2013-01-24 21:00:12

标签: css layout html

我有这个布局:

<div id="container">
<div id="left">LEFT</div>
<div id="mtop">MIDTOP</div>
<div id="mbotton">MIDBOT</div>
<div id="right">RIGHT</div>
<div id="botton">BOTTON</div>
</div> 

#container {
    height:200px;
    width:300px;
    vertical-align:middle;
    display:table-cell;
    background-color:yellow;
}
#left {
    height:100px;
    color:white;
    background-color:blue;
    font-size:20px;
    width:100px;
}
#right {
    height:100px;
    color:white;
    background-color:red;
    font-size:20px;
    width:100px;
}
#botton {
    height:20px;
    display: block;
    vertical-align: botton color:white;
    background-color:green;
    font-size:20px;
    width:100%;
}
#mtop {
    height:50px;
    color:white;
    background-color:orange;
    font-size:20px;
    width:100px;
}
#mbotton {
    height:50px;
    color:white;
    background-color:pink;
    font-size:20px;
    width:100px;
}
#left, #right {
        display: inline-block;
        vertical-align: middle
    }
#mtop, #mbotton {
        display: inline-block;
        vertical-align: top
}

Live Demo jsFiddle

但我需要这种布局

Layout

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

将中间div包裹在父div中,然后给出左,中,右div [{1}},使它们彼此相邻显示。

中间div的CSS:

float: left

请参阅DEMO

答案 1 :(得分:2)

当您将#right div移到#mtop div之上时,float: left div需要#leftfloat: right div需要#right {1}} div

HTML:

<div id="container">
    <div id="left">LEFT</div>
    <div id="right">RIGHT</div>
    <div id="mtop">MIDTOP</div>
    <div id="mbotton">MIDBOT</div>
    <div id="botton">BOTTON</div>
</div>

CSS:

#left {
    float: left;
}
#right {
    float: right;
}

您还应删除所有vertical-align并更改

#container {
    height:200px;
    width:300px;
    vertical-align:bottom;
    display:table-cell;
    background-color:yellow;
}

然后,所有div将整齐地对齐#container的底部。

修改后的JSFiddle

答案 2 :(得分:1)

您应该创建一个<div>来同时包含MIDTOPMIDBOT

更好的是,完全避免容器<div>并使用带有0 px边框的<table>