div や css なしで回避策を期待するのはなぜですか? そして、それの何が問題なのですか?
オプション 1: JqueryMobile.com で行っていることをコピーする
とにかく、これは彼らが実際の jQuery Mobile サイト (1.4.2) で行う方法です。2013 年 1 月の jQuery モバイルの状態についてコメントすることはできません。
<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/