27/32: Приемлемость кода

Насколько приемлем код по мнение опытных верстальщиков?

HTML

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

CSS

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

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

.welcome {
    background-color: #34495e;
    padding: 10px 0px;
}

.header {
    background-color: #c0392b;
    height: 35px;
    width: 350px;
    margin: 0 auto 10px auto;
    padding: 5px;
    box-sizing: border-box;
}

.menu {
    background-color: #3498db;
    width: 100%;
    height: 35px;
    margin-bottom: 10px;
    padding: 5px 0px 10px 55px;
    box-sizing: border-box;
    
}

.promo1,
.promo2 { 
    background-color: #c0392b;
    width: 170px;
    height: 60px;
}

.promo1 {
    float: left;
    margin-left: 50px;
    padding: 5px;
    box-sizing: border-box;
}

.promo2 {
    float: right;
    margin-right: 50px;
    padding: 5px;
    box-sizing: border-box;
}

.layout {
    
}

.left {
    background-color: #3498db;
    width: 70px;
    height: 110px;
    float: left;
    margin: 10px;
    margin-left: 50px;
    
}

.main {
    background-color: #3498db;
    width: 190px;
    height: 110px;
    float: left;
    margin: 10px 10px 10px 0px;
}

.right {
    background-color: #3498db;
    width: 70px;
    height: 110px;
    float: right;
    margin: 10px 50px 0px 0px;
}

.left,
.main,
.right {
    padding: 5px;
    box-sizing: border-box;}

footer {
    background-color: #34495e;
    width: 100%;
    height: 35px;
    margin-bottom: 10px;
    padding: 5px 0px 10px 55px;
    box-sizing: border-box;
}

.clearfix::after {
    content: "";
    display: table;
    clear: both;
`

Позиционера по центру не хватает, некоторые отступы сразу бы отпали и код был бы по короче

1 лайк

+) Вопрос о бессмысленном названии класса (welcome) и использовании тегов HTML5.

т.е. создать отдельный селектор(позиционер), который позиционировал бы некоторые схожие по положению элементы(.header .promo .layout)?


Про велкам, ну, думаю при открытие страницы пользователь в первую очередь увидит именно этот блок.

А теги hrader и footer по прежнему не рекомендуются к использованию?

Нет, почему? Пользуйтесь на здоровье) Только footer у вас сирота получился.

Да вы верно поняли

Обновил чуть код:

HTML:

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

.welcome {
    background: #34495e;
    padding: 10px 0px;
}

.header {
    background: #c0392b;
    width: 350px;
    height: 35px;
}

.menu {
    background: #3498DB;
    height: 35px;
    margin: 10px 0px;
}

.promo {
    background: #c0392b;
    float: left;
    width: 170px;
    height: 60px;
}

.promo:last-child {
    margin-left: 10px;
}

.layout {
    background: white;
    padding: 10px 0px;
}
.clmn {
    background: #3498DB;
    height: 110px;
    float: left;
    margin-right: 10px;
    width: 190px;
}

.clmn:last-child {
    margin: 0px;
    width: 70px;
}

.clmn:first-child {
    width: 70px;
}

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

/*Выравниевает текст в дивах*/
.layout-positioner > div,
.special-lp {
    padding: 5px;
    box-sizing: border-box;
}

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

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

По поводу .special-lp: логичнее обернуть текст menu и footer в див что бы избавиться от класса, или оставить как есть?

Можете оставить как есть, я думаю.