27/32 испытание: строим сетку (проблема с отступами)

Добрый день!
Прошел задание на 97%, но остается проблема с отступами.
если задавать отступы для container то сдвигаются promo и content
Если не задавать, то сдвигаются header, menu и fotter
(проблема с расчетом ширины)

Как это можно исправить, чего нехватает?
использовать box-sizing мне кажется неправильным, или нужно его использовать?

HTML:

<head>
    <title>Испытание: строим сетку</title>
    <meta charset="utf-8">
</head>
<body>
    <div class="row color_asphalt header">
        <div class="container red layout-header">
            Header
        </div>
    </div>
    <div class="row blue">
        <div class="container layout-menu">
            Menu
        </div>
    </div>
    <div class="row color_asphalt">
        <div class="container layout-promo">
            <div class="promo_left red">
                Promo 1
            </div>
            <div class="promo_right red">
                Promo 2
            </div>
        </div>
    </div>
    <div class="row">
        <div class="container layout-content">
            <div class="content_left blue">
                Left
            </div>
            <div class="content_center blue">
                Main
            </div>
            <div class="content_right blue">
                Right
            </div>
        </div>
    </div>
    <div class="row color_asphalt">
        <div class="container layout-footer">
            Footer
        </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;
}

/*
    Используемые цвета:
    #34495e – мокрый асфальт
    #c0392b – красный
    #3498DB – синий
*/
.promo_left,
.promo_right,
.content_left,
.content_center,
.content_right {
    padding: 5px;
}
.header {
    padding: 10px;
}
.layout-header {
 height: 25px;
 padding: 5px;
}
.layout-menu {
 height: 25px;  
 padding: 5px;
}
.layout-promo {
 padding: 10px 0;
 margin: 0;
}
.layout-footer {
    height: 30px;
    padding: 5px;
}
.layout-content {
    padding: 10px 0;
}
.container::after {
    display: table;
    content: "";
    clear: both;
}
.promo_left,
.promo_right {
    width: 160px;
    height: 50px;
}
.promo_left {
    float: left;
}
.promo_right {
    float: right;
}
.content_left,
.content_center,
.content_right {
    margin-right: 10px; 
    height: 100px;
}
.content_left {
    float: left;
    width: 60px;
}
.content_center {
    float: left;
    width: 180px;
}
.content_right {
    float: right;
    width: 60px;
    margin-right: 0;
}
.color_asphalt {
 background-color: #34495e;  
}
.red {
 background-color: #c0392b;
}
.blue {
 background-color: #3498DB; 
}
.container {
    width: 350px;
    margin: auto;
}

Есть идея: если очень просто, обратите внимание на то, какими по счёту (во вложенности) идут footer, header, menu (сами эти “тексты” - слова) и группы блоков типа promo и left-right-main. Может, стоит обернуть первые три ещё в одну оболочку, а .container сделать для них чисто центровщиком? Box-sizing - можно, а почему бы и нет? Чтобы не пересчитывать при подгонке кучу размеров, одно другому не мешает :slight_smile:

Задавать отдельные классы только для фонового цвета нецелесообразно.

1 лайк