由于 jQuery Mobile 独特的功能,纯 CSS 不能用于完美的内容居中。
这是一个专门为 jQM 创建的工作示例:http: //jsfiddle.net/Gajotres/detPg/
$(document).on('pageshow', '#index', function(){
$("div[data-role='fieldcontain']").css('margin-top',getRealContentHeight()/2 - $('#b').height()/2);
$('#b').css('margin-left',$("div[data-role='content']").outerWidth()/2 - $('#b').width()/2);
});
function getRealContentHeight() {
var header = $("div[data-role='header']:visible");
var footer = $("div[data-role='footer']:visible");
var content = $("div[data-role='content']:visible:visible");
var viewport_height = $(window).height();
var content_height = viewport_height - header.outerHeight() - footer.outerHeight();
if((content.outerHeight() - header.outerHeight() - footer.outerHeight()) <= viewport_height) {
content_height -= (content.outerHeight() - content.height());
}
return content_height;
}
通常水平居中只能通过 css 实现,但由于 jQM 1.3 的新变化,甚至必须通过 javascript 计算。