Испытание: Сетки [27/32] Пройдено на 100%

Здравствуйте. Прошел на 100%, но такое чувство, что очень многое сделано неправильно. Посмотрите пожалуйста.
Изначально было 95%, добил уже методом “тыка”, т.к. не отображался блок “main”.

HTML

<html lang="ru">
    <head>
        <title>Испытание: строим сетку</title>
        <meta charset="utf-8">
    </head>
    <body>
        <div class="wrapper">
            <div class="header">Header</div>
                <div class="menu">Menu</div>
                    <div class="promo1">Promo 1</div>
                        <div class="promo2">Promo 2</div>
                    </div>
        <div class="column-positioner">
            <div class="left-column">Left</div>
                <div class="main-column">Main</div>
                    <div class="right-column">Right</div>
                        </div>
        <div class="footer">Footer</div>
    </body>
</html>

CSS

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

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

.wrapper {
    height: 170px;
    width: 450px;
    background: #34495e;
    float: right;
}

.header {
    height: 25px;
    width: 340px;
    background: #c0392b;
    margin-top: 10px;
    margin-left: 50px;
    padding: 5px;
}

.menu {
    height: 25px;
    width: 340px;
    background: #3498DB;
    margin-top: 10px;
    padding: 5px 55px;
}

.promo1 {
    height: 50px;
    width: 160px;
    background: #c0392b;
    margin-top: 10px;
    margin-left: 50px;
    padding: 5px;
    float: left;
}

.promo2 {
    height: 50px;
    width: 160px;
    background: #c0392b;
    margin-right: 50px;
    margin-top: 10px;
    padding: 5px;
    float: right;
}

.column-positioner {
    width: 400px;
    margin: 0 auto;
}

.column-positioner::after {
    display: table;
    content: "";
    clear: both;
}

.left-column {
    height: 100px;
    width: 60px;
    background: #3498DB;
    float: left;
    margin-top: 10px;
    margin-left: 25px;
    padding: 5px;
}

.main-column {
    height: 100px;
    width: 180px;
    background: #3498DB;
    float: left;
    margin-top: 10px;
    margin-left: 10px;
    padding: 5px;
}

.right-column {
    height: 100px;
    width: 60px;
    background: #3498DB;
    margin-top: 10px;
    margin-right: 25px;
    padding: 5px;
    float: right;
}

.footer {
    height: 30px;
    margin-top: 10px;
    background: #34495e;
    padding: 5px 55px;
}
/*
    Используемые цвета:
    #34495e – мокрый асфальт
    #c0392b – красный
    #3498DB – синий
*/

Есть ошибки. Фиксированная высота у блоков. Лучше писать min-height.
В этом правиле float: right; не к месту:

Возьмите в качестве образца один из вариантов решения с форума. Например, этот. Неплохая работа, смотрела сегодня утром. Обратите внимание, как сгруппированы общие стили для похожих блоков.

Спасибо большое!