Посчитать длину элемента
Здравствуйте, скажите, как можно посчитать длину в пикселях длину строки.
Например я ввожу слово: hello world и он мне показывает сколько длина этой фразы. Спасибо. |
Начинающий-Js-кодер,
всё зависит от элемента и его css в котором будет этот текст. |
Ну элемент пусть будет div и он должен создавать динамически с шириной взятой от ширины слова+5px слева и справа.
|
Начинающий-Js-кодер,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> div { border: 2px solid green; } </style> </head> <body> <script> function fn(str) { var container = document.createElement("div") container.appendChild(document.createTextNode(str)); document.body.appendChild(container); container.style.display = "inline" var width = container.offsetWidth; container.style.display = ""; container.style.width = width + "px"; container.style.padding = "0 5px"; } fn("hello world") </script> </body> </html> |
Спасибо. Гениально. Но вопрос:
container.style.display = "inline" ... container.style.display = ""; Зачем именно так делать? |
Начинающий-Js-кодер,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> div.test { border: 2px solid green; display: inline-block; padding: 0 5px; text-align: center; } </style> </head> <body> <script> function fn(str) { var container = document.createElement("div") container.appendChild(document.createTextNode(str)); document.body.appendChild(container); container.classList.add("test") } fn("hello world") </script> </body> </html> |
Гений!
|
Цитата:
container.style.display = "inline" сужаем ширину до текста (надобы word-wrap: break-word; ещё) container.style.display = ""; возращаем display=block |
Теперь понял. Идеальное решение.
|
Хотел спросить:
Вот допустим есть у нас не 1 слово, а 5(или любое другое) и мы их должны вывести каждый в своем блоке отдельно, то есть так: hello->world->hi->javascript->forum Но расстояние между блоками должно быть строго 30 пикселей, тогда лучше делать не через inline-block, о пределять ширину каждого блока,потом прибавлять 30 пикселей и это будет позиция второго блока, так? |
Часовой пояс GMT +3, время: 00:10. |