Мастерская: декоративные элементы [18/18] 94%

Всем привет.

У меня небольшие проблемы с позиционированием элементов, как правило все делаю методом тыка, маловато практики, наверное. По этой причине представляю вам свое творение, сделанное сумасшедшим верстальщиком с помощью обломанного карандашика на куске салфетки на коленке :rofl:

Вопросы таковы:

  1. Как код в целом, что оптимизировать, в какую сторону смотреть внимательнее в рефакторинге и т.д. и т.п.
  2. Одна единственная проблемная точка конкретно в этом задании - разметка <div class="post-stats">. Я так понимаю, в коде где-то закралась ошибка, но я, в виду вышесказанных проблем, не могу вразумить, что я делаю не так.

Всем спасибо за внимание, жду критики, остроумных комментариев и полезной помощи.

Собственно, код
html,
body {
  margin: 0;
   padding: 0;
}

body {
  width: 280px;
  min-height: 250px;
  padding-top: 50px;
  padding-right: 10px;
  padding-left: 10px;

  font-size: 12px;
  line-height: 1.2;
  font-family: "Arial", sans-serif;
  color: #7f8c8d;

  background-color: #ecf0f1;
}
a {
  text-decoration: none;
  color: #2980b9;
}
.post {
  position: relative;
}
.post-title {
  font-size: 20px;
  color: #2980b9;
  width: 300px;
  margin-bottom: 5px;
  margin-left: 75px;
}
.post-date {
  position: absolute;
  top: 0px;
  left: 0px;
  height: 55px;
  width: 55px;
  line-height: 55px;
  vertical-align: middle;
  text-align: center;
  font-weight: bold;
  font-size: 15px;
  background-color: white;
  border-bottom: 5px solid #bdc3c7;
}
.post-type {
  position: absolute;
  top: 70px;
  left: 0px;
  height: 55px;
  width: 55px;
  background-color: #7f8c8d;
  background-image: url('quotes.png');
  background-repeat: no-repeat;
  background-position: 50% 50%;
  border-bottom: 5px solid #bdc3c7;
}
.post-author {
  margin-left: 75px;
}
.post-stats {
  display: inline-block;
  margin-top: 5px;
}
.post-stats .icon {
  display: inline-block;
  width: 15px;
  height: 15px;
  background-color: gray;
}
.post-stats .icon-tags {
  margin-left: 75px;
  background: url('post-challenge.png') no-repeat 0 0;
  vertical-align: middle;
}
.post-stats .icon-comments {
  margin-left: 15px;
  background: url('post-challenge.png') no-repeat -20px 0;
  vertical-align: middle;
}
.post-text {
  margin-left: 75px;
  padding: 10px 15px;
  width: 165px;
  background-color: white;
  border-bottom: 5px solid #bdc3c7;
}

ну смотрите, код в разы упрощается если вы .post сдвините внутренним отступом слева на 75px
тогда внешний отступ не придется приписывать каждому последующему в контейнере
у вас .post-type и .post-date должны как бы выпасть из потока также как и иконки комментов с тегами
а также ОЧЕНЬ многое можно объединить, по многу раз однотипным элементам прописываете одно и то же.

спойлер, поправил вам
html,
body {
  margin: 0;
   padding: 0;
}

body {
  width: 280px;
  min-height: 250px;
  padding-top: 50px;
  padding-right: 10px;
  padding-left: 10px;

  font-size: 12px;
  line-height: 1.2;
  font-family: "Arial", sans-serif;
  color: #7f8c8d;

  background-color: #ecf0f1;
}
a {
  text-decoration: none;
  color: #2980b9;
}
.post {
  position: relative;
  padding-left: 75px;
}
.post-title {
  font-size: 20px;
  color: #2980b9;
  width: 300px;
  margin-bottom: 5px;
}
.post-date,
.post-type {
  width: 55px;
  height: 55px;
  position: absolute;  
  left: 0;
  border-bottom: 5px solid #bdc3c7;
}
.post-date {
  font-size: 15px;
  font-weight: bold;
  background-color: #ffffff;
  line-height: 55px;
  text-align: center;
  top: 0;
}

.post-type {
  background: #7f8c8d url('quotes.png') no-repeat 50% 50%;
  top: 70px;
}
.post-stats {
  position: relative;
  padding-left: 20px;
  padding-right: 10px;
  display: inline-block;
  margin-top: 5px;
}
.post-stats .icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 15px;
  height: 15px;
  background: url('post-challenge.png') no-repeat;
}

.post-stats .icon-comments {
  background-position: -20px 0;
}
.post-text {
  padding: 10px 15px;
  width: 165px;
  background-color: white;
  border-bottom: 5px solid #bdc3c7;
}

Большое спасибо за советы, будем работать над этим