将两行文本居中放在一行旁边,即HTML / CSS

时间:2013-08-18 19:10:12

标签: html5 css3

所以我已经在jsfiddle做了我想要实现的目标。我想知道是否有更简单的方法来实现同样的效果:

Image reference

<div class="date"> 
<span class="day">05</span>
<div class="dateHolder">
    <span class="month">DEC</span>
     <span class="year">2013</span>
</div>

.date {
position: absolute;
font-family: Arial;
font-weight: bold;
background: rgba(0, 0, 0, 0.8);
color: #fff;
width: 110px;
height: 60px;
padding: 10px;
}
.dateHolder {
    margin-top: 10px;
}
.day {
    font-size: 50px;
    line-height: 60px;
    float: left;
}
.month, .year {
    float: right;
    font-size: 20px;
    line-height: 20px;
    display: block;
}

2 个答案:

答案 0 :(得分:2)

我认为您不需要那些跨度。它足以漂浮他们的容器。还缺少clearfix。这是jsfiddle更新http://jsfiddle.net/krasimir/2gwwB/3/ 这是我能想到的最简单的标记和css。

<div class="date"> 
    <span class="day">05</span>
    <div class="dateHolder">
        DEC<br />2013
    </div>
</div>

CSS:

.date {
    font-family: Arial;
    font-weight: bold;
    position:absolute;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    width: 110px;
    height: 60px;
    padding: 10px;
}
.date:after {
    content: "";
    clear: both;
    display: block;
}
.dateHolder {
    margin: 7px 0 0 10px;
    float: left;
}
.day {
    display: block;
    font-size: 50px;
    float: left;
}

答案 1 :(得分:2)

我认为布置日期的这些部分并将它们垂直居中的最简单方法是to use CSS table model

.date {
    font-family: Arial;
    font-weight: bold;
    position:absolute;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    width: 110px;
    height: 60px;
    padding: 10px;
    display: table;
}
.dateHolder {  
    display: table-cell;
    vertical-align: middle;
    text-align: right;    
    font-size: 20px;
    line-height: 21px;
}
.day {
    font-size: 50px;
    line-height: 60px;
    display: table-cell;
    vertical-align: middle;
}
.dateHolder > span {
    display: block;
}

无需clearfix魔法和边距/填充调整。一切都自动对齐。