フレックスボックスを使用してフォームを作成しました。これはFirefox、Edge、IE11で美しく機能します。Chromeのalign-items:選択要素と入力要素のベースライン
残念ながら、Chromeでは残念ながらスパンのテキストが一貫して整列していません。それに続く選択があっても問題ありませんが、入力が続いた場合、テキストは、ベーラインではなくボトムに揃うように見えます。
私は、センターの代わりにベースラインを使用して、潜在的に異なるフォントサイズを考慮しています。私は私のコードを簡素化し、 http://codepen.io/rachelreveley/pen/jrmbJP
に投稿しているクロームで不正なレイアウト
FF
で正しいレイアウト
form,
fieldset {
display: flex;
flex-direction: column;
}
label {
display: flex;
align-items: baseline;
flex-direction: row;
justify-content: flex-start;
padding: .3rem 0;
flex-wrap: wrap;
}
fieldset span {
text-align: right;
padding: 0 1rem 0 0;
}
input,
select,
textarea {
padding: .5rem;
}
<form>
<fieldset>
<label>
<span>Label</span>
<input type="text" />
</label>
<label>
<span>Label</span>
<select>
<option value="" selected="" disabled=""></option>
<option value="Mr">Mr</option>
<option value="Dr">Dr</option>
<option value="Miss">Miss</option>
<option value="Mrs">Mrs</option>
<option value="Ms">Ms</option>
<option value="Ms">Mx</option>
<option value="Other">Other</option>
</select>
</label>
</fieldset>
</form>
あなたは理由を説明することができます。ここ
を使用しているのですか? – Pugazh
私はそれを試して、それは動作します! 私は、Chromeがテキストを含むまでテキスト入力のベースラインを設定していないと思うかもしれません。しかし、これをすべての入力に置く必要はありません。私は多くの多くの形式のサイトを構築しています。 スペースなしのプレースホルダ= ""は動作しません。 –
$( 'input')でjQueryで設定できます。attr( 'placeholder'、 '');プレースホルダをどこにでも配置する必要はありません。 –