Выравнивание даты комментария справа внизу в контейнере

#html #css #alignment #vertical-alignment

#HTML #css #выравнивание #выравнивание по вертикали

Вопрос:

Выравнивание даты

Я пытаюсь выровнять эту серую дату внизу справа в этом контейнере. Она должна располагаться в нижней части контейнера, а не в конце текста. Я создал для этого CodePen:http://codepen.io/adrianTNT/pen/IciCH

Есть идеи? Вероятно, я могу сделать это с помощью неаккуратного кода, но я уверен, что должен быть чистый способ сделать это с помощью правильного CSS-кода.

 body{
    background-color:#0e91a1;
  padding:10px;
}

.comment{
    padding:10px;
    margin:0px;
    margin-bottom:10px;
    background-color:#FFF;
    border-radius:4px;
    box-shadow: 1px 1px 1px #555;
    min-height:50px;
}

.comment_text{
    font-family:monospace, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", Monaco, "Courier New";
}

.comment_date{
    font-family:monospace, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", Monaco, "Courier New";
    color:#CCC;
    display:inline-block;
    float:right;
}

img.comment_avatar{
    border-radius:4px;
    position:relative;
    display:inline;
    margin-right:10px;
    margin-bottom:5px;

}
.comment_name{
    font-weight:bold;
}
  

Ответ №1:

Вот другое решение: http://jsfiddle.net/7kdar/2 /.

Во-первых, .comment абзац расположен относительно:

 .comment{
    padding:10px;
    margin:0px;
    margin-bottom:10px;
    background-color:#FFF;
    border-radius:4px;
    box-shadow: 1px 1px 1px #555;
    min-height:50px;
    position: relative;
}
  

Во-вторых, .comment_date позиционируется абсолютно с использованием .comment координат:

 .comment_date{
    font-family:monospace, Consolas, "Andale Mono", "Lucida Console", 
                "Lucida Sans Typewriter", Monaco, "Courier New";
    color:#CCC;
    position: absolute;
    bottom: 10px;
    right: 10px;
}
  

В-третьих, чтобы убедиться, что .comment_date не перекрывается с .comment_text , в конце .comment_date добавляется новый невидимый элемент, размер которого равен наибольшей дате:

 .comment_text:after {
    content: "3 Jul 23:36";
    color: white;
}
  

Комментарии:

1. Кажется, работает, но не правильнее ли .comment_text:after использовать margin-right:80px; вместо .comment_text ? Кажется, работает в первых тестах, если вы согласны, то, возможно, вы сможете скорректировать ответ.

2. Ну, во-первых, span s — это строки, поэтому вы не можете установить margin-right на них. .comment_text отображение можно изменить на inline-block , а затем margin-right можно установить. Эффект не так уж велик: jsfiddle.net/7kdar/5 , потому что весь текст перемещается влево. Вот почему я предложил добавить фрагмент невидимого текста с помощью :after . Последний метод влияет только на последнюю строку.

3. Кстати, :after фрагмент кода предназначался для реализации заполнения последней строки текста и content: "3 Jul 23:36"; предназначен для создания достаточного пространства. Для рабочей версии вы можете явно задать ширину :after элемента. Вот скрипт, который устанавливает :after содержимое как inline-block и расширяет его до 110 пикселей. Возможно, вам потребуется скорректировать это число в соответствии с вашими целями. Это чище, чем использование текста даты. jsfiddle.net/7kdar/6 . Приветствия.

Ответ №2:

Как насчет того, чтобы просто использовать float: right; для вашего .comment_date span лайка на http://codepen.io/anon/pen/HpBGd

РЕДАКТИРОВАТЬ: Также удалите display:inline-block и измените <p> на <div> и comment_date <span> на div, как я сделал в приведенном выше codepen (обновленном), и я думаю, что это решит проблемы.

введите описание изображения здесь

Комментарии:

1. само по себе это не помогает, потому что оно всплывает после текста комментария, а не в нижней части этого контейнера.

2. Другими словами, если в комментарии только одно слово, то элемент даты / времени все равно должен находиться в правом нижнем углу.

3. @DRD точно. Итак, если есть только очень короткий текст, то дата должна быть НЕ сверху, а справа внизу.