Никто не запрещает использовать display: table-cell у блоков.
На семантику это никак не влияет, и это так же блочная верстка.
http://jsfiddle.net/Kb7RD/
#columns {
display: table;
width: 100%;
border: 1px solid #333;
}
.column-1,
.column-2,
.column-3 {
display: table-cell;
height: 40px;
border: 1px solid #f00;
}
.column-1 {
width: 200px;
}
Либо через float, но понадобится дополнительная обёртка 2 и 3 блоку
http://jsfiddle.net/2xE8r/
<div id="columns" class="clearfix">
<div class="column-1"></div>
<div class="columns-2">
<div class="column-2"></div>
<div class="column-3"></div>
</div>
</div>
.clearfix:before,
.clearfix:after {
display: table;
content: " ";
}
.clearfix:after {
clear: both;
}
#columns {
display: block;
width: 100%;
border: 1px solid #333;
}
.columns-2 {
margin-left: 200px;
}
.column-1,
.column-2,
.column-3 {
float: left;
height: 40px;
}
.column-1 {
width: 200px;
background: #f00;
}
.column-2,
.column-3 {
width: 50%;
}
.column-2 {
background: #ff0;
}
.column-3 {
background: #0f0;
}