一行文本的CSS高度是多少?它不’;看起来不太好

一行文本的CSS高度是多少?它不’;看起来不太好,css,em,Css,Em,看看这把小提琴: 功能切换(事件){ var element=document.getElementById('changeme'); element.innerText=element.innerText?“”:“一些文本”; } button=document.getElementById('button'); button.onclick=切换 #更改我{ 最小高度:1米; 轮廓:1px纯红; } 动态更改内容 这不应该移动(上下)线条高度的精确计算很复杂(参见CSS 2.1第10节)

看看这把小提琴:

功能切换(事件){
var element=document.getElementById('changeme');
element.innerText=element.innerText?“”:“一些文本”;
}
button=document.getElementById('button');
button.onclick=切换
#更改我{
最小高度:1米;
轮廓:1px纯红;
}

动态更改内容

这不应该移动(上下)
线条高度的精确计算很复杂(参见CSS 2.1第10节),但在这样一个简单的情况下,当元素不为空时,高度由
线条高度
值确定。当它为空时,高度将为空,但
minheight
设置将高度强制为字体大小(
1em

的初始值取决于浏览器,并且预计也取决于字体。默认值实际上总是大于字体大小。这就解释了这里发生的事情

要保持高度恒定,最好明确设置其
行高度
,并将
最小高度
设置为相同的值,例如:

#changeme {
    line-height: 1.25em;
    min-height: 1.25em;
}

注:
em
单位是指字体的大小,根据定义是字体的高度。这是一个参考量,通常与任何字母的高度(或宽度)不对应;大多数字母的高度都小于字体大小(尽管这会因字母和字体而异)。

默认的
行高
正常
(该属性的有效CSS值)。很遗憾,您不能将
min height
设置为该值

除了
正常
行高
可以有固定的长度值(此处不感兴趣)或与
字体大小相关的因素。有趣的是,
normal
的数字等价物不仅仅依赖于浏览器。对于不同的字体面和字体大小,它通常介于1.0和1.5之间(无单位)

因此,将
min height
设置为介于1em和1.5em之间的漂亮值。然后将
行高设置为相同的值,以确保其实际相同


请注意,对于
行高
而言,使用em单位或小于em单位的值的含义相同:前者是相对于当前字体大小的固定长度,后者是相对于。。。字体大小。

在大多数web浏览器中,
行高的默认值是
1.2
/
1.2em
120%
。正如@HashemQolami所说:相关问题:看看我在CSS 2.1的第10.6.1节中也找到了什么:“注意:CSS的级别3可能会包含一个属性,用于选择内容高度使用的字体度量值。”。。。