Испытание: анонс поста

Задание пройдено, хоть и на 90% всего лишь. Но все-таки осталось 2 вопроса. Как между словами интенсив и программа грамотно разместить запятую и как вторую иконку перед цифрой 5 сделать соответсвующей образцу.
HTML:

<!DOCTYPE html>
<html>
    <head>
       <title>Испытание: анонс поста</title>
       <meta charset="utf-8">
    </head>
    <body>
        <div class="post">
            <div class="post-title">Интенсив: программа</div>
            <div class="post-date">13.09</div>
            <div class="post-type"></div>
            <div class="post-author">
                Автор: <a href="#">HTML Academy</a>
            </div>
            <div class="post-stats">
                <div class="icon icon-tags"></div>
                <a href="#">интенсив</a>,
                <a href="#">программа</a>
            </div>
            <div class="post-stats">
                <div class="icon icon-comments"></div>
                <a href="#">5</a>
            </div>
            <div class="post-text">Работа над интенсивом идёт полным ходом. Мы нашли крутых людей в команду и решили еще кучу задач. Но сегодня я подробнее расскажу о работе над программой интенсива.</div>
        </div>
    </body>
</html>

CSS:

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;

   
}
.post-title{
    color:#2980b9;
    font-size:20px;
    position:absolute;
    left:75px;
    
}
.post-stats .icon{
    width:15px;
    height:15px;
}
.icon-tags{
    background-image:url('/assets/course14/post-challenge.png');
    position:absolute;
    top:45px;
    left:75px;
    
}
.icon-comments{
    position:absolute;
    top:45px;
    left:225px;
    background-image:url('/assets/course14/post-challenge.png');
    
}    
    

.post-text{
    width:165px;
    height:auto;
    background-color:#ffffff;
    padding-left:15px;
    padding-right:20px;
    padding-bottom:15px;
    padding-top:15px;
    border-bottom:solid 5px #bdc3c7;
    position:absolute;
    left:75px;
    top:90px;
}
.post-author {
    text-decoration:none;
    color:#bdc3c7;
    position:absolute;
    left:75px;
    top:25px;
}
.post-author a{
    color:#2980b9;
    text-decoration:none;

}

.icon-tags + a{
    position:absolute;
    left:95px;
    top:45px;
    text-decoration:none;
    color:#2980b9;
    
}
.post-stats a:nth-child(3){
    position:absolute;
    left:155px;
    top:45px;
    text-decoration:none;
    color:#2980b9;
    
}
.icon-comments + a{
    position:absolute;
    left:245px;
    top:45px;
    text-decoration:none;
    color:#2980b9;
}
.post-type{
    margin-top:10px;
    width:55px;
    height:55px;
    background-color:#7f8c8d;
    background-image:url('/assets/course14/quotes.png');
    background-repeat:no-repeat;
    background-position:50% 50%;
    border-bottom:solid 5px #bdc3c7;
    position:absolute;
    top:60px;
     
} 
.post-date{
    width:55px;
    height:55px;
    background-color:#ffffff;
    font-size:14px;
    font-weight:bold;
    line-height:55px;
    text-align:center;
    vertical-align:middle;
    border-bottom:solid 5px #bdc3c7;
    position:absolute;
    
}


/*
Все размеры, отступы, координаты, размеры шрифтов (не заданные в body) кратны 5 или 10.
Ардеса картинок:
/assets/course14/quotes.png
/assets/course14/post-challenge.png
Картинка "кавычки" выровнена по центру
*/

@Alexxoid, думаю [тут][1] скрывается ответ на Ваш вопрос.

В следующий раз, пожалуйста - посмотрите на уже созданные темы.
[1]: Испытание: анонс поста (Мастерская: декоративные элементы)

Я не настолько продвинутый адепт, чтобы перечитывать все посты в теме, анализировать и разбираться в чужом коде. Я попросил помочь в моем случае, указать главные причины, почему у меня получилось именно то, что получилось. Заранее, спасибо.

Мне не сложно ответить, разобраться. Ни как нет. Но хотелось бы, чтобы люди понимали всю суть форума, что база ответов собирается постепенно, и их нужно перечитывать. Какой смысл дублировать темы? если можно в созданную ранее - написать и там ответят. Уж если совсем Лень разбираться в ответах ваших.
Каждый случай индивидуален, может Вы точку с запятой пропустили, для этого целую тему создавать? :disappointed:

Короче, первое, что мне бросилось в глаза:
Пусть вы и прописали для .post position:relative Но не стоит все позиционировать абсолютом.
Т.е. Вы можете весь контент (.post-date и ,post-type) сдвинуть аболютом, и то. только по высоте.
А все остальное не стоит позиционировать относительно родителя.
решение:

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

Следовательно у всех убрать свойства: position:absolute, left:75px и top:?px

для .post-type и .post-date рациональней заюзать position:absolute
И вот более правильный код:

.post-date, .post-type {
    position:absolute;
    left:0;
    width:55px;
    height:55px;
    line-height:55px;
    display:block;
    background:#fff;
    text-align:center;
    border-bottom: 5px solid #bdc3c7; 
}
.post-date {font-size:15px;font-weight:bold;top:0;}
.post-type {
    top:70px;
    background: #7f8c8d url(/assets/course14/quotes.png) 50% 50% no-repeat;
}

К .post-title и .post-author добавь margin-bottom:5px
Так же у .post-author не зачем было переопределять цвет текста, он задан у body и спокойно наследуется, причем правильно, убери еще text-decoration:none, его достаточно только у ссылки.

Запись:

.icon-tags + a {
        text-decoration:none;
        color:#2980b9;
    }

Рациональней заменить на:

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

И тогда не придется больше ни где задавать цвет у ссылки и убирать подчеркивание.

Зачем вообще вы использовали такой сложный селектор здесь? .post-stats a:nth-child(3)
Можно куда проще всё сделать:

.post-stats {display:inline;} /* В одну строку умещаем наши теги*/
.post-stats .icon{ /*общие стили для иконок у тегов */
    width:15px;
    height:15px;
    padding-left:20px;
    display:inline;
    background: url(/assets/course14/post-challenge.png) 0 0 no-repeat;
}
.post-stats .icon-comments { /* сдвигаем вторую иконку (p.s. можно реализовать более правильно, но так будет понятней) */
    background-position: -20px 0;
    margin-left: 10px;
    background-repeat: no-repeat;
}

Остался текст. Данный код слишком громоздкий:

.post-text{
    width:165px;
    height:auto;
    background-color:#ffffff;
    padding-left:15px;
    padding-right:20px;
    padding-bottom:15px;
    padding-top:15px;
    border-bottom:solid 5px #bdc3c7;
}

Можно все упростить:

post-text {
    height:auto; /*upd* так-то и это свойство лишнее =) */
    background-color:#ffffff;
    padding:10px 15px; 
    border-bottom:solid 5px #bdc3c7;
}

Я убрал width:165px потому что у body уже задана ширина, поэтому рациональней было бы не высчитывать ее для текста, а задать лишь отступы. И padding удобней записывать в таком виде:
padding: “сверху” “справа” “снизу” “слева”;
Если записаны только первые два, то “снизу” и “слева” будут аналогичны.

Вроде всё.

1 лайк

Спасибо за терпение и понимание:)

Про absolute Я не зря сказал, старайтесь в будущем искать более гибкое решение