これが有効な解決策と答えであるかどうかはわかりませんが、これらをコメントアウトした後、私の入力は Android で再生され始めました。これにより、Android (HTC2.3) のテキスト入力と選択に大混乱が生じました。
/* really bad */
-webkit-backface-visibility: hidden;
/* your normal bad */
-webkit-transform: rotateY(0deg);
-moz-transform: rotateY(0deg);
transform: rotateY(0deg);
デフォルトの入力をスタイルしたい場合、私はこれらを使用しています:
/* native placeholder styling */
::-webkit-input-placeholder {
color:#555555;
}
:-moz-placeholder {
color:#555555;
}
.inField label {
color:#555555;
cursor: text;
}
最初の Webkit をコメントアウトした後、Android は問題なく動作しています。ただし、他の多くのものもオーバーライドしています。
以下のスクリーンショットもご覧ください。
入力で行ったことは、リストビューを作成し、すべての入力をリスト項目に入れ、すべての入力 JQM-CSS を削除することです。これにより、リストビュー項目の上に透明な入力が表示されるはずです。これは非常に見栄えが良いと思います。入力にラベルを追加することもできます。私の例は inField ラベル プラグインで動作するように設定されているため、これらのクラスもすべて既に搭載されています。
スクリーンショットは私の Android HTC 2.3.5 のもので、input type="search" を示しています。これは、ほとんどの JQM-css を取り除いたリストビュー検索フィルターです。リストビューからさらに削除し、フォームリストに配置し、ラベルを追加し(アクティブかどうかはわかりません)、アイコンを含むすべてのCSSを削除しました。
リストフォームの実行方法の例を次に示します。
<ul data-role="listview" data-inset="true" class="inputList">
<li data-role="fieldcontain" data-icon="false" class="inField ui-btn ui-corner-top" data-theme="c">
<div class="ui-btn-inner" aria-hidden="true"><div class="ui-btn-text">
<label for="item">item</label>
<input type="text" name="item" id="item" />
</div></div>
</li>
<li data-role="fieldcontain" data-icon="false" class="inField ui-btn ui-corner-bottom" data-theme="c">
<div class="ui-btn-inner" aria-hidden="true"><div class="ui-btn-text">
<label for="item2">item2</label>
<input type="text" name="item2" id="item2" />
</div></div>
</li>
</ul>
CSS:
.inputList li div.ui-btn-inner {
background: none;
border-bottom-width: 0px;
border-left-width: 0px;
border-right-width: 0px;
}
.inputList label {
margin: 3px 0 0 !important;
}
// styling of text inputs!
.inputList input.ui-input-text, .inputList textarea.ui-input-text {
width: 93%;
margin-left: 1%;
padding: 0.6em 0;
text-indent: 80px; /* hard-coded - doesn't work on Android */
border-width: 0px;
background: transparent;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
-moz-border-radius:0px;
-webkit-border-radius: 0px;
border-radius: 0px;
}
.inputList .ui-li-divider:not(.input-divider), .inputList .ui-li-static, .inputList .ui-li-has-alt, .inputList .ui-link-inherit, .inputList .ui-btn-icon-notext .ui-btn-inner {
padding: 0px !important;
}
// labels, from inField label plugin, but not active
.inField {
position:relative
}
.inField label {
line-height: 2.25em;
vertical-align: middle;
position:absolute;
left:8pt;
width: inherit !important;
}
これがすべてCSSであることを願っています。これを設定しようとしていて、見栄えが悪い場合は、お知らせください。
私の HTC 2.3.4 では、このように作業するのはとても良いようです。私の CSS にはまだ磨きが必要です。入力の幅を減らして中央に配置する必要があるため、下のリスト項目の境界線が表示されたままになります。
それ以外は、これは厄介な Android 入力に対する優れたソリューションです。すべての JQM-CSS を取り除き、listview-li を後ろに置きます。