【发布时间】:2016-10-27 17:18:46
【问题描述】:
当我使用 em 作为一个单位时,我很难理解 css height 属性是如何应用于 input 字段的。
看看这个 jsfiddle:jsfiddle
如果em 值等于基本字体大小,示例一和三的高度应该相同。如果em 基于元素中设置的字体大小(我认为这是正确的),那么示例一和示例二应该是相同的大小。事实上,这些物品的尺寸都不相同。如果我将高度设置为px,那么我可以强制它们都具有相同的大小。
是什么使我的所有输入框大小不同?
CSS:
.one {
max-height:3em;
height: 3em;
font-size:1em;
vertical-align: top;
}
.two {
max-height:6em;
height: 6em;
font-size: 0.5em;
vertical-align:top;
}
.three {
max-height:3em;
height: 3em;
font-size: 0.5em;
vertical-align:top;
}
HTML:
<input type="text" class="one" placeholder="one">
<input type="text" class="two" placeholder="two">
<input type="text" class="three" placeholder="three">
【问题讨论】:
-
你在干什么?示例 1 和 2 的大小相同。它按预期工作。您设置的基本字体大小乘以设置的高度 == 实际高度。因此第一个输入是 3em 高,第二个输入是 3em 高,最后一个输入是 1.5em 高。
-
它们在 Chrome 54 或 Safari 10 中对我的显示不同。您使用的是什么浏览器,它们的大小相同?在我使用的两种浏览器中,它们显然不一样。示例 2 比示例 1 高约 10%。