0

我读过大多数类似的帖子,但是使用 line-height 等于 height 或 display:table-cell + vertical-align:middle 都不能帮助我将绝对定位的 div 中的数字居中。

任何帮助表示赞赏。

html

<div id='test'>
</div>

CSS

#test {
    position: relative;    
    width: 100px;
    height: 100px;
    border: 1px solid black;
}

.cell {
    display: table-cell;
    vertical-align: middle;
    position: absolute;
    width: 33.33%;
    height: 33.33%;
    text-align: center;
}

.cell:hover {
    background-color: red;
}

Javascript

var cell = $("<div class='cell'></div>");
var e = $('#test');
var val;
for(i=0;i<3;i++) {
    for(j=0;j<3;j++) {
        val = (i*3)+(j+1);
        c = cell.clone();
        $(e).append(c);
        $(c).html(val);
        $(c).css('top',(i*33.33)+'%');
        $(c).css('left',(j*33.33)+'%');
        $(c).data('value',val);
    }
}

链接:http: //jsfiddle.net/wB7Mk/1/

4

2 回答 2

1

您需要使line-height等于以像素为单位的高度。你可以得到高度$(height)

.css('line-height', $(c).height() + 'px');

http://jsfiddle.net/ExplosionPIlls/wB7Mk/2/

于 2013-04-02T03:46:21.547 回答
0

只需在您的 CSS 中添加一行,

.cell

.cell{line-height:33px;}

这样就可以了,根本不需要辛勤工作:)

更新的小提琴

如果你想要它动态添加这个

$('.cell').css("line-height","33px");

更新的小提琴

于 2013-04-02T03:57:25.733 回答