19/01/15 20:33:49.93 .net
IE10, IE11ではフォーカス時にplaceholderの表示が消えますが、Chrome、 Firefox、Safari などでは、文字を入力するまで表示され続けます。
URLリンク(qiita.com)
ここから派生したバグ。
条件1
・検索ボックスが、display: flex;(IEだとdisplay: -ms-flexbox;)を指定した祖先要素内にあり、フレックス・ボックスを継承。
条件2
・検索ボックスのinput要素にwidthを%単位でスタイル指定してある。
条件3
・placeholder属性が空でなく、且つプレースホルダーにfont-familyを指定してあった場合。
以上の三条件を満たす時―
フォーカス時にプレースホルダーの文字列が消えると、検索ボックスの横幅まで縮む。
逆に言ったら、通常時(非フォーカス時)は他のブラウザと違ってIE11だけ検索窓の幅が伸びてしまって、
ブラウザーのウィンドウ幅によっては続くフレックス・ボックスが折り返されたりする罠。
幅が長くなったり短くなったりする伸縮率は、プレースホルダーの文字数の長さには関係無いみたい。
widthの%指定は、width: calc(100% - 43px);とかでも駄目。width: calc(20em - 43px);なら可。
↓これは関連するか?
スマホでinputにwidth: 100%;とplaceholderを指定した時に、端末を横向きから縦向きに変更すると画面幅がおかしくなる
URLリンク(cly7796.net)
再現ソースは>>588