2

我有三个不同字体大小的跨度,它们div用不同的浮点数包裹起来。

我试图spans通过调整 来正确对齐这些line-height,但对我来说似乎有点 hacky,因为最后一个浮动span是用这种方法溢出容器。

我试图玩vertical-align没有运气。

那么在没有黑客攻击(如果可能的话)的情况下,对齐这些的干净方法是什么?

这是jsFiddle,这里是代码:

HTML

<div class="comTitle">
    <span class="comUserName">admin</span>
    <span class="comUserRank"> - Animator</span>
    <span class="timeCreated">The 13/03/13 at 16:49</span>
</div>

CSS

.comTitle {
    font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05);
    /*line-height:22px;*/
}

.comUserName {
    font-weight: bold;
    font-size: 16px;
    color: #444;
    font-variant: small-caps;
    clear:left;
}

.comUserRank {
    font-size: 12px;
    font-style: italic;
    color: grey;
    clear:left;
}

.timeCreated {
    font-style: italic;
    font-size: 12px;
    color: #444;
    float: right;
    /*vertical-align:baseline;*/
    /*line-height:26px;*/
}

[编辑]我知道如何处理position财产,我可以使它与:

.timeCreated {
    ...
    float:right;
    position: relative;
    right: 0px;
    bottom: -4px;
}

或绝对定位,但我想知道是否有可能在不改变元素流的情况下将最后一个跨度与包装器的基线(而不是顶部)对齐?

4

2 回答 2

3

为 span添加一些padding-top空间.timeCreated- 字体大小的差异(4px)

.timeCreated {
    font-style: italic;
    font-size: 12px;
    color: #444;
    float: right;
    padding-top: 4px;
}

jsFiddle

于 2013-03-26T18:01:06.290 回答
2

我不知道这有多干净,但它很有效,我只是给了它一些定位。jsFiddle

.comTitle {
font-family:'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05);
/*line-height:22px;*/
position:relative;
}
.comUserName {
font-weight: bold;
font-size: 16px;
color: #444;
font-variant: small-caps;
clear:left;
}
.comUserRank {
font-size: 12px;
font-style: italic;
color: grey;
clear:left;
}
.timeCreated {
font-style: italic;
font-size: 12px;
color: #444;
position:absolute;
bottom:0px;
right:0px;
}
于 2013-03-26T17:52:58.210 回答