【发布时间】:2014-10-10 16:29:17
【问题描述】:
看看这个小提琴:
function toggle(event) {
var element = document.getElementById('changeme');
element.innerText = element.innerText ? '' : 'some text';
}
button = document.getElementById('button');
button.onclick = toggle;
#changeme {
min-height: 1em;
outline: 1px solid red;
}
<input id=button type=button value='Toggle content'>
<p id=changeme>dynamically changing content
<p>This should not move (up and down)
我在那里有一个文本元素(它是<p>,但可能是<div>),我有时将其设置为空。 (使用按钮在空白内容和某些内容之间切换。)
这个带有一行文本的元素的高度是多少?我想要一个通用的答案,这样我就可以将其 min-height 设置为该值,这样元素在为空时不会折叠。我以为1em 是我要找的东西,但1em 似乎是像“W”这样的字母的大小,没有像“g”这样的字母在基线下方的空格。
我正在寻找一个巧妙的技巧来给可能为空的元素一个恒定的高度,而不是将&nbsp; 放入其中。 (目前我使用1.5em。)
【问题讨论】:
-
line-height在大多数浏览器中的默认值为1.2/1.2em或120%。 -
正如@HashemQolami 所说:jsfiddle.net/webtiki/4g9wnptp/19