HTML5の<input type="date" />
を使用しています。さまざまなブラウザで正常に動作しますが、すべてを台無しにする人は常にいます。
ここでの問題は、フィールドのサイズです。デザインに Bootstrap v3.2 を使用すると、これらの入力はフォームになり、class="form-control"
が含まれるため、(上記のテキスト入力のように)幅が広くなります。および以下を選択してください)。
デートピッカーは100%幅でなければならないとiOSに言う方法はありますか? style="width:100%"
は何もしません。 width:1000px
は確かに機能しますが、width:100% !important
は何もしません。
助けてくれてありがとう!
これは、iOSがinput type="date"
を処理する方法です。ネイティブスタイリングは気になりません。見た目は悪いかもしれませんが、iOSを使っている人は慣れています。
日付入力にはmin-width:95%
を使用できます。少なくともiOS8ではフィットし、それ以外の場合は外観が変わりません。 Android以前のバージョンのiOSではテストしていませんが、中央に配置するだけで、入力に.center-block
を追加できるので、少なくとも中央に配置されます。見送ってください。
.input-min-width-95p {min-width:95%;}
HTML:
<input type="date" class="form-control input-min-width-95p" ...
これにより、IOSのすべての日付フィールドが修正されます。
input[type="date"]
{
display:block;
-webkit-appearance: textfield;
-moz-appearance: textfield;
min-height: 1.2em;
}
私の場合、「新しい」で修正しました flexbox レイアウトタイプ:
input {
display:flex;
display:-webkit-flex;
flex: 1 0 0;
-webkit-flex: 1 0 0;
}
デモ: http://output.jsbin.com/bugeqowamu/1
注:デモのように、コンテナにもdisplay: flex;
が必要です。
以下のコードに示すように、この問題には2つの解決策があります。あなたはそれらからどれでも使うことができます。
IOSでは、メソッド1はこれに伴ってコントロールの幅を拡大し、UIを変更して通常の入力ボックスのように見えます。つまり、メソッド1の出力に示すようにドロップダウンシンボルは表示されず、メソッド2はドロップダウンシンボルを削除せずにコントロールの幅を拡大します。方法2に示す出力
.c1{
-webkit-appearance: none;
-moz-appearance: none;
}
.c2{
min-width:95%;
}
Method 1)
<input type="time" class="form-control c1" name="txtIn"
id="txtIn" >
<br/><br/> <br/>
Method 2)
<input type="time" class="form-control c2" name="txtOut"
id="txtOut" >