Chrome 和 Firefox 之间的行高不一致
Inconsistent line height between Chrome and Firefox
我正在为我的网站制作自定义工具提示,我希望它们在 Chrome 和 Firefox 上看起来一样。一切都按预期工作,除了工具提示的每一行在 Firefox 上似乎有不同的高度,尽管我定义了 line-height
并添加了 !important
.
我设置了一些 JS 来设置文本并将工具提示移动到光标的位置,但我怀疑这是导致行高问题的原因。
这是CSS:
#tooltip {
position: fixed;
padding: 5px 10px;
font-size: 14px;
color: <?= $theme['fgTooltip'] ?>;
line-height: 120% !important;
background: <?= $theme['bgTooltip'] ?>;
border-radius: 6px;
box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.3);
user-select: none;
transition: 0.1s ease-in-out;
z-index: 100;
}
和生成的HTML:
<div id="tooltip" style="display: block; opacity: 1; left: 265px; top: 644px;">
<b>Test.md</b>
<br>Last modified: 9/26/2021 2:09 AM
<br>File type: Markdown Document
<br>File size: 146 Bytes
</div>
The result in Chrome
The result in Firefox
知道为什么会这样吗?这只是 Firefox 的一个奇怪的事情吗?
感谢所有回复!
编辑:
在 Firefox 的 DevTools 中查看渲染结果后,我发现每行文本高 19px,但换行符高 19.6px。这也解释了为什么我的示例工具提示(和单行工具提示)的最后一行没有这个问题。我该如何解决这个问题?
事实证明,出于某种原因,Firefox 中的 <br>
元素不想正确遵守其父元素的行高。
我通过将所有 <br>
元素的 line-height
设置为 0%
来解决这个问题。
我正在为我的网站制作自定义工具提示,我希望它们在 Chrome 和 Firefox 上看起来一样。一切都按预期工作,除了工具提示的每一行在 Firefox 上似乎有不同的高度,尽管我定义了 line-height
并添加了 !important
.
我设置了一些 JS 来设置文本并将工具提示移动到光标的位置,但我怀疑这是导致行高问题的原因。
这是CSS:
#tooltip {
position: fixed;
padding: 5px 10px;
font-size: 14px;
color: <?= $theme['fgTooltip'] ?>;
line-height: 120% !important;
background: <?= $theme['bgTooltip'] ?>;
border-radius: 6px;
box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.3);
user-select: none;
transition: 0.1s ease-in-out;
z-index: 100;
}
和生成的HTML:
<div id="tooltip" style="display: block; opacity: 1; left: 265px; top: 644px;">
<b>Test.md</b>
<br>Last modified: 9/26/2021 2:09 AM
<br>File type: Markdown Document
<br>File size: 146 Bytes
</div>
The result in Chrome
The result in Firefox
知道为什么会这样吗?这只是 Firefox 的一个奇怪的事情吗?
感谢所有回复!
编辑:
在 Firefox 的 DevTools 中查看渲染结果后,我发现每行文本高 19px,但换行符高 19.6px。这也解释了为什么我的示例工具提示(和单行工具提示)的最后一行没有这个问题。我该如何解决这个问题?
事实证明,出于某种原因,Firefox 中的 <br>
元素不想正确遵守其父元素的行高。
我通过将所有 <br>
元素的 line-height
设置为 0%
来解决这个问题。