I\'m looking for a 3 column css layout, with 1 fixed section at the middle and 2 fluid sidebar around it:
http://www.uploadup.com/di-UEFI.png
middle has 250p
To make this work in IE6/7 without JavaScript, the easiest way to do this is with a table
.
I know, I know. It's not that bad in this case, all considered.
See: http://jsfiddle.net/thirtydot/Q2Qxz/
Tested in IE6/7 + Chrome, and it will just work in all other modern browsers.
HTML:
<table id="container" cellspacing="0" cellpadding="0">
<tr>
<td id="left">fluid</td>
<td id="mid">fixed</td>
<td id="right">fluid</td>
</tr>
</table>
CSS:
html, body {
margin: 0;
padding: 0;
border: 0
}
#container {
border: 0;
table-layout: fixed;
width: 100%
}
#container td {
vertical-align: top
}
#mid {
width: 250px;
background: #ccc
}
#left {
background: #f0f
}
#right {
background: #f0f
}
If you don't use one of the ready templates out there,
You can start by three div
floated left, the middle with width: 250px and the outside ones with
min-width: 150px
You might want to replace it with the <section>
tag, just give it a display: block
You can try to use inline-block
s for it. They are used rather rarely, but sometimes they are pretty good for layouts.
So, look at this: http://jsfiddle.net/kizu/UUzE9/ — with inline-block
s you can create layouts with any number of fixed and fluid columns. The algorithm:
250px
.min-width
to the wrapper equal to the sum of all the fluid columns' min-width.white-space: nowrap
to the wrapper, so the columns won't jump.If you need support for IE7 and lesser, there are some additional things to know except for common inline-block
fix:
white-space: normal
to the inner child of a column, or the columns won't stay on one line.overflow: hidden
on some wrapper.Enjoy :)