三列布局...左(固定px),中心(50%),右(50%)

时间:2012-10-05 17:00:38

标签: css layout html

我希望左列为40px。我希望中间列为剩余视口的50%,我希望右列是剩余视口的另外50%。

看起来应该是这样的:

[LEFTCOLUMN][...CENTER COLUMN...][...RIGHT COLUMN....]
[...40px...][........50%........][........50%........]

此处提供的解决方案(link)对我的情况不起作用,因为中心列可能会在移动设备上崩溃。

谢谢!

3 个答案:

答案 0 :(得分:3)

我认为这可能适合你:

http://jsfiddle.net/KR9zj/

基本上诀窍是浮动LEFTCOLUMN,并将CENTERCOLUMN和RIGHTCOLUMN包装在overflow: hidden的包装中。

答案 1 :(得分:2)

使用display:table;display:table-cell;。无需与float:x;斗争。

HTML:

<div id='container'>
    <div id='first'>a</div>
    <div id='second' class='fifty'>b</div>
    <div id='third' class='fifty'>c</div>
</div>​

CSS:

#container { display:table; width:100%; }
#container > * { display:table-cell; }
#first { width:40px; min-width:40px; }
#container .fifty { width:50%; }

实例:http://jsfiddle.net/j25wK/

答案 2 :(得分:0)

这会有用吗?

演示http://jsfiddle.net/BVhCZ/

如您所见,左边是绝对的,而“剩余”是一个包含两个50%漂浮儿童的街区div。应适用于任何宽度> ~~ 40px

代码:

<div class="left">LEFT</div>
<div class="content">
    <div class="content-left">CONTENT LEFT</div>
    <div class="content-right">CONTENT RIGHT</div>
</div>

.left {
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;    
    background-color: #ddd;
}
.content {
    margin-left: 40px;    
}
.content .content-left {
    float: left;
    width: 50%;
    clear: none;
    background-color: #fdd;
}
.content .content-right {
    float: right;
    width: 50%;
    clear: none;   
    background-color: #ddf;
}