我已经使用弹性框构建了一个表单,并且它在Firefox,Edge和IE11中运行得非常漂亮。Chrome对齐项:选择和输入元素的基线
不幸的是,Chrome浏览器中的文本并不一致。如果后面跟着一个选择,那么很好,但是当输入后面的文本看起来与底部对齐而不是直线时。
我正在使用基线而不是中心来考虑可能不同的字体大小。在Chrome
正确的布局在FF
不正确的布局
我简化了我的代码,并发布到 http://codepen.io/rachelreveley/pen/jrmbJP
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可能没有设置文本输入的基线,直到它们包含文本。尽管如此,不必每次都输入这些信息会很好。我正在建造一个有许多形式的网站。 placeholder =“”没有空格,不起作用。 –
这可以在jQuery中用$('input')设置。attr('placeholder','');所以你不必在任何地方放置占位符。 –