如果第二个 div/span 中的文本足够长,那么第一个 div/span 会停留在上角。但如果第二个 div/span 中没有任何内容,则第一个 div/span 位于 td 的中间。
我正在使用 IE 8。
日历的 HTML 片段
<table id="calendar">
<thead>
<tr><th>April</th></tr>
<tr>
<th>Sun</th>
<th>Mon</th>
<th>Tues</th>
<th>Wed</th>
<th>Thur</th>
<th>Fri</th>
<th>Sat</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div>
<span>1</span>
</div>
<div>
<span></span>
</div>
</td>
<td>
<div>
<span>2</span>
</div>
<div>
<span></span>
</div>
</td>
<td>
<div>
<span>3</span>
</div>
<div>
<span></span>
</div>
</td>
<td>
<div>
<span>4</span>
</div>
<div>
<span></span>
</div>
</td>
<td>
<div>
<span>5</span>
</div>
<div>
<span></span>
</div>
</td>
<td>
<div>
<span>6</span>
</div>
<div>
<span></span>
</div>
</td>
<td>
<div>
<span>7</span>
</div>
<div>
<span></span>
</div>
</td>
</tr>
</tbody>
</table>
日历的 CSS
#calendar {
border:2px solid black;
height:100%;
width:100%;
}
#calendar td {
border:2px solid black;
}
#calendar td > div:first-child {
text-align:left;
left: 0;
top: 0;
}
#calendar td > div:first-child > span{
text-align:left;
left: 0;
top: 0;
}
#calendar td > div + div {
clear:both;
text-align:center;
font-weight:bold;
white-space:normal;
}