将多个浮动跨距与不同字体大小对齐的“干净方式”是什么?

时间:2013-03-26 17:40:23

标签: css css-float html

我有三个不同字体大小的 ,它们包含在div不同的浮点数中。

我尝试通过调整spans来正确对齐这些line-height,但对我来说这似乎有点不好意思,因为最后一个浮动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;
}

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

2 个答案:

答案 0 :(得分:3)

padding-top范围内添加一些.timeCreated空格 - 字体大小的差异(4px)

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

jsFiddle

答案 1 :(得分: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;
}