Испытание: Сетки [27/32] - на сколько я не так понял курс?

Всем привет.
Ниже напишу код. Посмотрев другие темы ответы и тому подобное, понял что можно по разному выполнить задание. Сделал заключение что мой код на-********. Но все же хотелось бы услышать как правильнее сделать. Закидывать дивами, для будущего облегчения или я просто не врубился в курс сетки, и мне надо его еще раз 10 пройти?. Нужны ли распорки и тому подобное. Заранее спасибо.

HTML

<!DOCTYPE html>
<html lang="ru">
    <head>
        <title>Испытание: строим сетку</title>
        <meta charset="utf-8">
    </head>
    <body>
        <div class="top">
            <div class="header">Header</div>
            <div class="menu"><p>Menu</p></div>
            <div class="promo">Promo 1</div>
            <div class="promo">Promo 2</div>
        </div>
            <div class="center left">Left</div>
            <div class="center main">Main</div>
            <div class="center right">Right</div>
            <div class="footer"><p>Footer</p></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;
}

.top {
    background-color: #34495e;
    width: 450px;
    min-height: 170px;
    display: inline-block;
}

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

.menu {
    background-color: #3498DB;
    padding: 5px;
    min-height: 25px;
    margin-bottom: 10px;
}

p {
    margin: 0;
    margin-left: 50px;
}

.promo {
    background-color: #c0392b;
    padding: 5px;
    float: left;
    width: 160px;
    min-height: 50px;
    margin-right: 10px;
    margin-left: 50px;
}

.promo:last-child {
    margin-left: 0;
}

.center {
    background-color: #3498DB;
    float: left;
    padding: 5px;
    margin-left: 10px;
    margin-top: 10px;
    margin-bottom: 10px;
    min-height: 100px;
}

.left {
    width: 60px;
    margin-left: 50px;
}

.main {
    width: 180px;
}

.right {
    width: 60px;
}

.footer {
    background-color: #34495e;
    padding: 5px;
    clear: both;
    min-height: 25px;
}

/*
    Используемые цвета:
    #34495e – мокрый асфальт
    #c0392b – красный
    #3498DB – синий
*/

Правильнее с распорками, с центровщиком .layout-positioner. А почему текст в параграф обернут только в футере и меню, чем остальные блоки хуже?
О том, как вы поняли курс, я судить не могу. Это вы решаете для себя лично. Тема “Сетки” - сложная и вместе с тем очень важная, можете и перепройти. Почитайте темы по этому заданию здесь на форуме еще. Очень много написано, есть полные разборы кодов. Переписывать каждый раз одно и то же не хочется.
Если сами не сможете найти, то напишите. Я подберу вам несколько хорошо разобранных тем.

Футер и меню обернул в параграф по причине смещения текста. На всех остальных было достаточно padding-ом задать (для задания). В остальном спасибо буду читать, еще раз проходить. Ну, лично для себя уже понял, что код слишком прямолинеен и прост, мб для будущего исправление не сойдет или еще чего, буду разбирать. Если кто еще что скажет, буду рад прочесть.

Покумекал, надеюсь я понял курс сетки.
Посмотрите кому не лень, прокомментируйте пожалуйста правильность кода.
И меня смущает несколько моментов.

HTML

 `<!DOCTYPE html>
<html lang="ru">
    <head>
        <title>Испытание: строим сетку</title>
        <meta charset="utf-8">
    </head>
    <body>
        <div class="header">
            <div class="layout-positioner">              
                <div class="layout-column1 layout-column">Header</div>
            </div>
            <div class="layout-column2 layout-column">
                Menu <!--Вот тут интересует очень момент-->
            </div>
            <div class="layout-positioner">
                <div class="layout-column3 layout-column">Promo 1</div>
                <div class="layout-column3 layout-column">Promo 2</div>
            </div>
        </div>
        <div class="features">
            <div class="layout-positioner">
                <div class="layout-column1 layout-column">Left</div>
                <div class="layout-column2 layout-column">Main</div>
                <div class="layout-column3 layout-column">Right</div>
            </div>
        </div>
        <div class="footer">
            <div class="layout-positioner">
                <div class="layout-column1 layout-column">
                    Footer
                </div>
            </div>
        </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;
}

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

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

.layout-column {
    margin-top: 10px;
}

.header {
    background-color: #34495e;
    min-height: 170px;
}

.header .layout-column1 {
    background-color: #c0392b;
    padding: 5px;
    min-height: 25px;
    width: 340px;
    display: inline-block;
}

.header .layout-column2 {
    background-color: #3498DB;
    min-height: 25px;
    padding: 5px 55px 5px 55px;
}

.header .layout-column3 {
    background-color: #c0392b;
    float: left;    
    width: 160px;
    min-height: 50px;
    padding: 5px;
}

.header .layout-column3:last-child {
    margin-left: 10px;
}

.features .layout-column {
    background-color: #3498DB;
    float: left;
    margin-left: 10px;
    padding: 5px;
    min-height: 100px;
    width: 60px;
}

.features .layout-column1 {
    margin-left: 0;
}

.features .layout-column2 {
    width: 180px;
}

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

.footer .layout-column1 {
    padding: 5px;
}`

Первый момент в том что я делал без
.layout-positioner { width: 350px; margin: 0 auto; }
Добавлял маргины. Может тут и надо было так сделать?
Потом решил добавить центровщик, но столкнулся с проблемой в Menu.
Вот тут и 2 момент, блок меню что с ним делать. Правильно ли это смотрится. Если не правильно как правильнее сделать? Поставил коммент. Я взял и вытащил блок Menu из layout-positioner.
Ну и правильно ли я сделал что задал блоку Header - display: inline-block?
Подскажите пожалуйста!