Испытание: строим сетку [27/32]


#1

Привет, возник один вопрос. В теории говорится:

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

Хотелось бы узнать какое решение будет наиболее правильным!

1 решение:

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

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

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

.centering {
    width: 350px;
    margin: 0 auto;
}

.centering::after {
    display: table;
    content: "";
    clear: both;
}

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

.column-top {
    background-color: #c0392b;
    margin-bottom: 10px;
    padding-left: 5px;
    padding-top: 5px;
} 

.header { 
    min-height: 30px;
}

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

.promo1 {
    float: left;
    width: 165px;
    min-height: 55px;
}

.promo2 {
    float: right;
    width: 165px;
    min-height: 55px;  
}

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

.column-content:last-child {
    margin-right: 0;   
}

.side {
    width: 60px;
}

.center {
    width: 180px;   
}

.footer {
    background-color: #34495e;
    margin-top: 10px;
    padding-top: 5px;
    padding-left: 10px;
    min-height: 30px;
}

2 решение:

<html lang="ru">
    <head>
        <title>Испытание: строим сетку</title>
        <meta charset="utf-8">
    </head>
    <title>Последняя сетка завершена</title>
    <meta charset="utf-8">
  </head>
  <body>
    <div class="top">
      <div class="centering">
        <div class="header column-top">Header</div>
      </div>
      <div class="menu layout">
        <div class="centering">Menu</div>
      </div>
      <div class="centering">
        <div class="promo promo1 column-top">Promo 1</div>
        <div class="promo promo2 column-top">Promo 2</div>
      </div>
    </div>
    <div class="centering">
      <div class="column-content layout side">Left</div>
      <div class="column-content layout center">Main</div>
      <div class="column-content layout side">Right</div>
    </div>
    <div class="footer layout">
      <div class="centering">Footer</div>
    </div>
  </body>
</html>

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

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

.centering {
  width: 350px;
  margin: 0 auto;
}

.centering::after {
  display: table;
  content: "";
  clear: both;
}

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

.column-top {
  background-color: #c0392b;
  padding-left: 5px;
  padding-top: 5px;
}

.header {
  min-height: 30px;
  margin-bottom: 10px;
}

.menu {
  background-color: #3498DB;
  margin-bottom: 10px;
}

.menu.layout {
  min-height: 30px;
  padding-top: 5px;
  padding-left: 10px;
}

.promo {
  margin-bottom: 10px;
}

.promo1 {
  float: left;
  width: 165px;
  min-height: 55px;
}

.promo2 {
  float: right;
  width: 165px;
  min-height: 55px;
}

.column-content {
  float: left;
  background-color: #3498DB;
  margin-top: 10px;
  margin-right: 10px;
}

.column-content.layout {
  min-height: 100px;
  padding: 5px;
}

.column-content:last-child {
  margin-right: 0;
}

.side {
  width: 60px;
}

.center {
  width: 180px;
}

.footer {
  background-color: #34495e;
  margin-top: 10px;
}

.footer.layout {
  padding-top: 5px;
  padding-left: 10px;
  min-height: 30px;
}