Take line-height into account when measuring text height

This commit is contained in:
ahocevar
2019-03-09 08:25:09 +01:00
parent d25a534dea
commit 4a7b3cde56
2 changed files with 19 additions and 11 deletions

View File

@@ -288,22 +288,22 @@ function getMeasureContext() {
* @return {import("../size.js").Size} Measurement.
*/
export const measureTextHeight = (function() {
let span;
let div;
const heights = textHeights;
return function(font) {
let height = heights[font];
if (height == undefined) {
if (!span) {
span = document.createElement('span');
span.textContent = 'M';
span.style.margin = span.style.padding = '0 !important';
span.style.position = 'absolute !important';
span.style.left = '-99999px !important';
if (!div) {
div = document.createElement('div');
div.innerHTML = 'M';
div.style.margin = div.style.padding = '0 !important';
div.style.position = 'absolute !important';
div.style.left = '-99999px !important';
}
span.style.font = font;
document.body.appendChild(span);
height = heights[font] = span.offsetHeight;
document.body.removeChild(span);
div.style.font = font;
document.body.appendChild(div);
height = heights[font] = div.offsetHeight;
document.body.removeChild(div);
}
return height;
};