【问题标题】:Aligning comment date bottom right in a container在容器中对齐评论日期右下角
【发布时间】:2014-07-04 10:13:49
【问题描述】:

我正在尝试对齐该容器右下角的灰色日期。 它应该漂浮在容器的底部而不是文本的末尾。 我为它制作了一个 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;
}

【问题讨论】:

    标签: html css alignment vertical-alignment


    【解决方案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;
    }
    

    【讨论】:

    • 似乎有效,但在 .comment_text:after 上使用 margin-right:80px; 不是更准确吗 .comment_text ?似乎适用于第一次测试,如果您同意,那么也许您可以调整答案。
    • 好吧,首先,spans 是内联的,因此您不能在其上设置margin-right.comment_text显示可以更改为inline-block,然后可以设置margin-right。效果不是很好:jsfiddle.net/7kdar/5,因为所有的文本都被推到了左边。这就是为什么我建议使用:after 附加一段不可见的文本。后一种方法只影响最后一行。
    • 顺便说一句,:after 代码用于实现文本最后一行的填充,content: "3 Jul 23:36"; 用于创建足够的空间。对于生产版本,您可能需要明确设置 :after 元素的宽度。这是一个将:after 内容设置为inline-block 并将其扩大到110px 的小提琴。您可能需要调整该数字以适应您的目的。它比使用日期文本更干净。 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,就像我在上面的代码笔中所做的那样(更新)我认为它会解决问题。

    【讨论】:

    • 仅此一项是不行的,因为它浮动在评论文本之后,而不是在该容器的底部。
    • 也就是说,如果只有一个词的评论,那么日期/时间元素应该仍然在右下角。
    • @DRD 完全正确。所以如果只有很短的文字,那么日期不应该在顶部,而应该在右下角。
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-18
    • 1970-01-01
    • 2019-01-16
    • 2015-02-15
    相关资源
    最近更新 更多