как сделать "динамическое" обтекание div блока с 2 сторон, без использования js?

Компьютеры программирование html css веб дизайн

есть конструкция:
<div>
<div style="float: left; width: 200px;">левый блок</div>
<div style="width: 100%">центральный блок</div>
<div style="float: right; width: 200px;">правый блок</div>
</div>

Задача: сделать растяжение центрального блока до полной ширины, при "динамическом" удалении левого или правого блока.
условие: левый и правый блоки в данном случае динамические условно, то есть: на одной странице нет левого блока, на другой странице нет правого блока. флаг отсутсвия блока установлен для каждой страницы в админке сайта.

я пробовал играться со свойством display, но безрезультатно.
в принципе есть 1 рабочий вариант: это создать вот такой <div style="float: $flag"></div> и вынести его в логику скриптов, и менять динамически, но это имхо лажа полная, потому что придется выносить 3 див блока сразу, и меня у них всех состояние.

Ребят помогите, оч надо.

кто додумается получит 99 баллов за хоть какое нибудь более-менее преемлемое решение :)

пс: кроссбраузерность очень желательна, НО IE в расчет можно вообще не брать! у нас сайт для IE запрещен частично к просмотру.

Примечание:
atributz, левое меню вообще не появляется, правое меню появляется, но оно всегда ниже центрального контента.

У кого еще какие варианты ?

Примечание:
Arct, тоже не работает. вот скрин http://hostingkartinok.com/show-image.php?id=1fd572587fa5bd25881da4911d0c7034
я убрал правый блок, но расширение центрального блока не произошло.

Примечание:
Arct, если ваш CSS изменить на вот такой:
<style type="text/css">
html, body { margin:0px; padding:0px; background:#fff; position:relative; }
#all {text-align:left;}
#container { position:relative; display:block; border-left:solid 200px #5d9ce7; border-right:solid 200px #5de797;}
#inner { display:block; position:relative; margin-left:-200px; margin-right:-200px; padding:1px;}
#left { float:left; position:relative; width:200px; left:0px;}
#right { float:right; position:relative; width:200px; right:0px;}
#center { position:relative; display:block; height:1%;}
.clear {clear:both;}
</style>
то в принципе поведение соответствует требуемому в задаче, но там заданы border-left:solid 200px #5d9ce7; border-right:solid 200px #5de797;, усли их убрать все снова выходить из под контроля и перестает работать как надо, как их убрать? сделать их белыми #ffffff нельзя, надо прозрачные, так как фон боковых блоков везде прозрачный.

Примечание:
на другом ыоруме подсказали решение http://jsfiddle.net/V9Q8m/2/
Ответы:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>
html, body{height:100%; width:100%}
#left{float:left; width:200px;margin-left:-100%;background:blue}
#right{float:left; width:200px;margin-left:-200px;width:200px;background:yellow}
#center{float:left;width:100%; background:red; text-align:center; overflow:hidden;}
#center div{padding:0 200px}
</style>
</head>
<body>
<div id='center'>
   <div>Середина</div>
</div>
<div id='left'>Левая часть</div>
<div id='right'>правая часть</div>
<br clear='all'>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.