Вопрос по ширине - можно ли растянуть блок, указав только маргины соседям - на примере 27/32

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

  1. Красные блоки - Promo1 и Promo2 - возможно ли растянуть их по ширине, указав просто margin между ними.
  2. Синие - Left, Main, Right. Закрепив флоатом левый и соответственно правый, указать маргины среднему и автоматом растянуть его между ними.

С уважением.

<body>
    <div class="header">
        <div class="layout-positioner">
            <div class="layout-column-1">
                <div class="text">
                Header
                </div>
            </div>
        </div>
            <div class="layout-column-2">
                <div class="layout-positioner">
                    <div class="text">
                        Menu
                    </div>
                </div>
                </div>
        <div class="layout-positioner">
            <div class="layout-column-3">
                <div class="text">
                    Promo 1
                </div>
            </div>
            <div class="layout-column-4">
                <div class="text">
                Promo 2
                </div>
            </div>
        </div>
    </div>
    
    <div class="features">
        <div class="layout-positioner">
            <div class="layout-column left">
                <div class="text">
                Left
                </div>
            </div>
            <div class="layout-column main">
                <div class="text">
                Main
                </div>
            </div>
            <div class="layout-column right">
                <div class="text">
                Right
                </div>
            </div>
        </div>
    </div>
    
    <div class="footer">
        <div class="layout-positioner">
            <div class="text">
             Footer
            </div>
        </div>
    </div>
    
</body>

CSS

` html, body {
margin: 0;
padding: 0;
}

body {
width: 450px;
height: 335px;
font-family: “Arial”, sans-serif;
font-size: 10px;
color: white;
}

.layout-positioner {
width: 350px;
margin: 0 auto;
}

.layout-positioner::after {
display: table;
content: “”;
clear: both;
}

.header {
margin-bottom: 10px;
color: white;
background: #34495e;
padding: 10px 0px;
min-height: 25px;
}

.header .layout-column-1 {
background: #c0392b;
margin-bottom: 10px;
min-height: 35px;
}

.header .layout-column-2 {
background: #3498DB;
min-height: 35px;
margin-bottom: 10px;
}

.header .layout-column-3 {
float: left;
background: #c0392b;
min-height: 60px;
margin-right: 10px;
min-width: 100px;
}

.header .layout-column-4 {
float: right;
background: #c0392b;
min-height: 60px;
min-width: 100px;
}

.features {
margin-bottom: 10px;
}

.features .layout-column {
min-width: 70px;
min-height: 110px;
display: inline-block;
background: #3498DB;
}

.left {
float: left;
}

.main {
margin: 0px 10px;
min-width: 100px;
width: auto;
}

.right {
float: right;
}

.footer {
min-height: 35px;
color: white;
background: #34495e;
}

.text {padding: 5px;
}
`