为什么你会期望没有 div 或 css 的解决方法?那有什么问题呢?
选项 1:复制他们在 JqueryMobile.com 上所做的事情
无论如何,这就是他们在实际的 jQuery Mobile 网站 (1.4.2) 上的做法。我无法评论 2013 年 1 月 jQuery mobile 的状态。
<div data-role="header" class="jqm-header">
<h2><a href="../" title="jQuery Mobile Demos home"><img src="../_assets/img/jquery-logo.png" alt="jQuery Mobile"></a></h2>
<p><span class="jqm-version"></span> Demos</p>
<a href="#" class="jqm-navmenu-link ui-btn ui-btn-icon-notext ui-corner-all ui-icon-bars ui-nodisc-icon ui-alt-icon ui-btn-left">Menu</a>
<a href="#" class="jqm-search-link ui-btn ui-btn-icon-notext ui-corner-all ui-icon-search ui-nodisc-icon ui-alt-icon ui-btn-right">Search</a>
</div>
.ui-title(这是 h2 自动增强的)的默认样式表如下。您会看到,这就是margin: 0 30%
导致您出现问题的原因。
ui-header .ui-title, .ui-footer .ui-title
{
font-size: 1em;
min-height: 1.1em;
text-align: center;
display: block;
margin: 0 30%;
padding: .7em 0;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
outline: 0!important;
}
在他们的覆盖样式表中
.jqm-demos .jqm-header h2
{
padding: .4em 0 .1em;
margin: 0 3em;
}
添加此覆盖足以使我的徽标居中。
(可能有另一种方法可以做到这一点,data-enhance='false'
但这并没有
选项 2:禁用自动增强
您可以禁用自动增强以防止ui-title
首先应用该类并破坏您的 CSS。还有其他副作用,例如其他按钮配置不正确,我不推荐这种方式,但很高兴了解此功能可能适用于其他地方。
首先你必须设置
$.mobile.ignoreContentEnabled = true;
注意:您必须mobileinit
在加载 jQueryMobile 之前对其进行配置。像这样或者你想怎么做。
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$(document).on('mobileinit', function () {
alert("ignoreContentEnabled initial value = " +$.mobile.ignoreContentEnabled);
$.mobile.ignoreContentEnabled = true;
});
</script>
<script src="//code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.js"></script>
然后将标题更新为
<div data-role="header" id="defenderHeader" data-enhance="false">
它里面的任何东西都不会自动增强。<h2>
不幸的是,如果你把它放在我最初想做的事情上,这不起作用。您可以进一步探索此选项,但我认为选项 1 是最好和最简单的。
另请参阅:http ://api.jquerymobile.com/global-config/