From 1fcb94a29cfff71e8897ddbf2f9bdab227542481 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Wed, 11 Oct 2017 00:21:29 +0200 Subject: [PATCH] Make text height detection independent of css settings --- src/ol/render/canvas/textreplay.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/ol/render/canvas/textreplay.js b/src/ol/render/canvas/textreplay.js index 2ff5fd3792..a8fed3884f 100644 --- a/src/ol/render/canvas/textreplay.js +++ b/src/ol/render/canvas/textreplay.js @@ -126,18 +126,19 @@ ol.render.canvas.TextReplay.labelCache_ = new ol.structs.LRUCache(); * @return {ol.Size} Measurement. */ ol.render.canvas.TextReplay.measureTextHeight = (function() { - var textContainer; + var span; return function(font, lines, widths) { - if (!textContainer) { - textContainer = document.createElement('span'); - textContainer.textContent = 'M'; - textContainer.style.visibility = 'hidden'; - textContainer.style.whiteSpace = 'nowrap'; + 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'; } - textContainer.style.font = font; - document.body.appendChild(textContainer); - var height = textContainer.offsetHeight; - document.body.removeChild(textContainer); + span.style.font = font; + document.body.appendChild(span); + var height = span.offsetHeight; + document.body.removeChild(span); return height; }; })();