Получить ширину межсловного интервала в пикселях

Я застрял на том, как найти ширину в пикселях одного пробела между словами. Например, если у меня есть предложение: "The quick brown fox jumps over the lazy dog." и я хочу, чтобы ширина в пикселях пробелов (которые все будут одинаковыми), есть ли формула, которую я мог бы использовать? Это должно быть применимо для разных семейств шрифтов и размеров.

Я видел, что могу установить ширину, используя CSS-пространство слов, как в примере ниже, но я не хочу его устанавливать, я хочу получить значение. Кроме того, я также не хочу обрезать пробелы, просто рассчитать количество пробелов и добавить их общую ширину.

p { 
    word-spacing: 5px;
}

Заранее спасибо!

3 ответа

Вы можете просто сделать это, используя javascript, чтобы вернуть значение межсловного интервала конкретного элемента с id="id", если был указан его стиль межсловного интервала:

document.getElementById("id").style.wordSpacing;

Вот пример: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_style_wordspacing3

Этот метод работал на меня. По сути, мне нужно было сделать весь элемент холста, подключить font-size/font-family значения свойств и текст, который я хотел (пробел). Тогда я смог использовать measureText() найти ширину пространства. https://www.w3schools.com/tags/canvas_measuretext.asp

Вам нужно использовать window.getComputedStyle если word-spacing установить с помощью CSS.

var ws = document.querySelector('#ws');
var p = document.querySelector('p');
var style = window.getComputedStyle(p);
ws.textContent = style.wordSpacing;
p {
  word-spacing: 5px;
}
<p>The quick brown fox jumped over the lazy dog</p>
<div>The word spacing above is: <b id="ws">0px</b></div>

Другие вопросы по тегам