Сетки 27/32 (100%) Пожалуйста, оцените код.


#1

Прошел на 100%, но по ощущениям, я много лишних div’ов понаписал. Так же и CSS у меня огромный получился.
Подскажите, как можно код оптимизировать?
И если есть пример “идеального” кода этого испытания, скиньте тему или свой вариант)

https://jsfiddle.net/w0s4xmc0/40856/


#2

C div’ами всё нормально. Правда самый последний </div> лишний.
А в CSS не всё понятно.

Зачем это правило?

.footer-top {
  width: 30px;
}

Почему 40px?

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

Зачем отступы слева и справа?

.content {
  padding: 10px;
}

#3
HTML
<!DOCTYPE html>
<html lang="ru">
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="css.css">
        <title>Испытание: строим сетку</title>
        <link rel="stylesheet" href="style.css">
    </head>
<body>
    <div class="header-wrapper">
        <div class="layout-positioner">
            <div class="header">Header</div>
        </div>
        <div class="menu-wrapper">
            <div class="layout-positioner">
                <div class="menu">Menu</div>
            </div>
        </div>
        <div class="layout-positioner clearfix">
            <div class="promo-1">Promo 1</div>
            <div class="promo-2">Promo 2</div>
        </div>
    </div>
    <div class="content-wrapper">
      <div class="layout-positioner clearfix">
          <div class="column left">Left</div>
          <div class="column main">Main</div>
          <div class="column right">Right</div>
      </div>
    </div>
    <div class="footer-wrapper">
        <div class="layout-positioner">
             <div class="footer">Footer</div>
        </div>
    </div>
    </body>
</html>
CSS
html {box-sizing: border-box;}
*{box-sizing: inherit;}

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;
}
.clearfix::after {
    display: table;
    content: "";
    clear: both;
}
.layout-positioner > div {
    padding: 5px;
    word-break: break-all;
}

.header-wrapper {
    padding: 10px 0;
    background: #34495e; 
}

.header {
    min-height: 35px;
    background: #c0392b;
}

.menu-wrapper {
    margin: 10px 0;
    background: #3498db;
}

.promo-1,
.promo-2 {
    float: left;
    width: 170px;
    min-height: 60px;
    background: #c0392b;
}

.promo-2 {
    float: right;
}

.content-wrapper {
    padding: 10px 0;  
}

.column  {
    float: left;
    min-height: 110px; 
    background: #3498DB;
}

.left, .right {
    width: 70px;
}
.main {
    margin:0 10px;
    width: 190px;
}

.footer-wrapper {
    background: #34495e;
}
.footer, .menu {
    min-height: 35px;
}

Подскажите, как оптимизировать код. 27 задание
#4

Забыл убрать лишне, видимо когда код переделывал или менял div’ы

На глаз поставил, показало 100% думал все правильно.
Видимо любой размер больше 35px уже засчитывается на 100%.

Понял, не обратил на это внимание.

А это CSS-правило можно прописывать всегда?
Я так понимаю оно заменяет, те классы (class="… box-sizing"), которые я везде писал.

Спасибо за ответ и за ваш пример кода, понял над чем ,примерно, работать мне и как сделать удобнее для чтения мой css.


#5

Там размер вообще не нужен – должно растягиваться контентом.


ещё лучше так:

html {
  box-sizing: border-box;
}
*,
*::before,
*::after {
  box-sizing: inherit;
}

… там где border-box не нужен – пишем content-box.