我创建了一个带有按钮html标签的按钮。现在,我正在尝试设置em中的高度和宽度。我知道16px等于1em。这条规则适用于我到目前为止所见过的所有东西,除了按钮。如果我希望按钮的高度是45px,那么按钮的高度就是45px。如果我想把45px改成em,那就是2.8125em。它会短得多。用em使它接近45px,实际上大约是3.5em,在px中实际上是56px。为什么会这样呢?这是浏览器的问题吗?顺便说一下,我正在使用Safari。
发布于 2013-01-10 23:54:24
em等于所讨论元素的字体大小。如果你的按钮的字体大小不同于16px,那么em也会不同。
您所查看的所有元素都必须将其字体大小设置为16px。这并不奇怪,因为这是许多浏览器的默认设置。
发布于 2013-01-10 23:57:21
,我知道16px等于1em。
这是不对的。unil 1em并不对应于特定的像素值,它对应于元素当前字体的字符大小。
默认情况下,该按钮具有不同的字体。设置按钮的字体,它会得到你习惯的大小。
但是,如果希望大小为一定数量的像素,则应使用px单位而不是em。即使您指定了相同的字体系列和字体大小,em单位在浏览器和操作系统之间也可能略有不同。
发布于 2014-07-03 01:14:32
其他人谈到了对em单位如何与像素相关的误解,但潜在的问题还没有得到充分解决。
我今天发布了关于同样问题的帖子,这是showdev的answered here。
本质上,按钮有一个“系统字体”应用于它,阻止它继承其父按钮的字体大小。据我所知,所有主流浏览器都会发生这种情况,这是“预期行为”。
要克服此问题,请在css中指定button标签(或仅特定按钮)应显式继承其字体大小:
button {
font-size:inherit;
}这将使它与您正在处理的其他元素一样对待em大小。当然,这也会改变文本的大小,这对你来说可能是问题,也可能不是问题。
https://stackoverflow.com/questions/14261836
复制相似问题