Испытание: анонс поста [18/18]

Добрый день всем. Прокомментируйте, пожалуйста, код. Есть ли какие-то замечания или косяки?
Сначала, как и у многих, была проблема с post-stats. Сперва отступы слева для заголовка, автора и текста задавал отдельно. И только потом понял, что у каждого отдельного блока с ссылками будут отступы - поэтому не получалось, переделал. Вынес отступы в родительский post.

Очень интересует вертикальное выравнивание контента в дивах, как в этом задании с датой. Пробовал с display и vertical-align,но, видимо, делал неправильно. Вышел из ситуации через line-height равный высоте блока. Но если изменить высоту - поломается и выравнивание. Собственно, можно ли как-то сделать так, чтобы выравнивание было автоматическим?

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

body {
    width: 280px;
    min-height: 250px;
    padding-top: 50px;
    padding-left: 10px;
    padding-right: 10px;
    font-size: 12px;
    font-family: "Arial", sans-serif;
    line-height: 1.2;
    color: #7f8c8d;
    background: #ecf0f1;
}

.post {
    position: relative;
    padding-left: 75px;
}

.post a {
    text-decoration: none;
    color: #2980b9;
}

.post-title {
    font-size: 20px;
    color: #2980b9;
}

.post-date {
    width: 55px;
    height: 55px;
    background: #ffffff;
    border-bottom: 5px solid #bdc3c7;
    text-align: center;
    position: absolute;
    top: 0;
    left: 0;
    font-size: 15px;
    font-weight: bold;
    line-height: 55px;
}

.post-type {
    width: 55px;
    height: 55px;
    background: #7f8c8d;
    border-bottom: 5px solid #bdc3c7;
    text-align: center;
    position: absolute;
    top: 70px;
    left: 0;
    background-image: url("/assets/course14/quotes.png");
    background-repeat: no-repeat;
    background-position: 50% 50%;
}

.post-author {
    padding: 5px 0;
}

.post-stats {
    display: inline-block;
    position: relative;
    padding-left: 20px;
    margin-right: 10px;
}

.post-stats .icon {
    width: 15px;
    height: 15px;
    background: url("/assets/course14/post-challenge.png");
    background-repeat: no-repeat;
    position: absolute;
}

.post-stats .icon-tags {
    background-position: 0 0;
    top: 0;
    left: 0;
}

.post-stats .icon-comments {
    background-position: -20px 0;
    top: 0;
    left: 0;
}

.post-text {
    padding: 10px 15px;
    width: 165px;
    background: #fff;
    border-bottom: 5px solid #bdc3c7;
}

Почему бы не вынести в правило для .icon эти координаты, если они одинаковы для обеих иконок?
На счет выравнивания, вы всё сделали правильно. .post-date - элемент декоративный, у него фиксированная высота. А значит она не изменится, только если вы сами ее не измените.

1 лайк

Спасибо за ответ и за замечания.
Я так понимаю, в работе с первого раза далеко не всегда получается идеально написать код, и чистка и, к примеру, вынесение общих правил в какой-нибудь один селектор, как у меня, является обычным делом?

Да, это обычное дело. Главное только не перестараться в такой оптимизации.