我通常使用这种“技术”:
$(function() {
$('.className').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.className').width()/2,
'margin-top' : -$('.className').height()/2
});
});
更新:
根据用户Fred K的建议,我正在更新解决方案,使用.outerWidth()
and.outerHeight()
进行更精确的居中。
$(function() {
$('.className').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.className').outerWidth()/2,
'margin-top' : -$('.className').outerHeight()/2
});
});
来自 jQuery 文档 ( .outerWidth()
, .outerHeight()
) 的一些附加说明:
更新 2:
一个简单的更新,展示如何this
在方法内部使用css()
,以防有更多class
具有不同大小的相同标签的元素。
$(function() {
$('.className').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : function() {return -$(this).outerWidth()/2},
'margin-top' : function() {return -$(this).outerHeight()/2}
});
});