我在一段文本中使用内联文本输入。字体大小和行高设置正确,但与其他内联元素的行为(例如跨度)不同,段落会扩展以适应文本输入的高度。
问题是我有两行并排放置,需要垂直对齐,一条包含文本输入,另一条没有。因为段落结果是不同的高度,所以准确定位它们是一个问题,因为间距是在段落的边缘而不是内部内联元素上完成的。我可以计算出差异并相应地对齐,但这似乎肯定会跨浏览器失败。
根本原因似乎是因为我将段落的行高设置为 0.99em,从而使段落的高度小于其中的元素。不幸的是,这是一个要求。我在 Chrome 中看到了这个问题。我还没有在其他地方测试过。
看看这个小提琴,看看我的意思:
跨度具有绿色背景,段落具有红色背景,包含 div 具有灰色背景。您可以看到第二段获得了额外的间距(在这种情况下为 7px)
此处包含 SO 的代码:HTML:
<div><p><span>Hello</span></p></div>
<div><p><span>Hello</span> <input type="text" value="input"></p></div>
CSS:
body {
font-size:62.5%;
font-family:Georgia;
}
div {
padding:7px 0;
margin-bottom:20px;
background:#999;
}
p {
background:#f00;
font-size:8.8em;
line-height:0.99;
}
span {
background:#0f0;
}
input {
font-family:Georgia;
font-size:1em;
border:0;
background:#fff;
margin:0;
padding:0;
width:215px;
}