Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Посчитать длину элемента (https://javascript.ru/forum/dom-window/74603-poschitat-dlinu-ehlementa.html)

Dilettante_Pro 24.07.2018 14:55

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   div.test {
      border: 2px solid green;
      display: inline;
      padding: 0 5px;
      text-align: center;
      margin-right:30px;
   }

  </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")
    }

    var arr = 'hello world hi javascript forum'.split(' ');
    arr.forEach(function(it) {
       fn(it);
    });
  </script>

</body>
</html>

Начинающий-Js-кодер 24.07.2018 15:21

Спасибо, но а если без margin-right:30px; это сильно будет сложнее?

Dilettante_Pro 24.07.2018 16:13

Цитата:

Сообщение от Начинающий-Js-кодер
а если без margin-right:30px; это сильно будет сложнее?

Попробуйте... А зачем?

Начинающий-Js-кодер 24.07.2018 16:26

Просто если нужно рядом с элементом линию будет нарисовать, а из-за margin-right:30px; она будет на 30 px подальше.

рони 24.07.2018 16:39

Начинающий-Js-кодер,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body {
      position: relative;
  }

   div.test {
      border: 2px solid green;
      display: inline;
      padding: 0 5px;
      text-align: center;
      position: absolute;
   }

  </style>


</head>

<body>
  <script>
    function fn(str, left)
    {
      var container = document.createElement("div")
      container.appendChild(document.createTextNode(str));
      document.body.appendChild(container);
      container.classList.add("test");
      container.style.left = left + "px"
      return container.offsetWidth
    }

    var arr = 'hello world hi javascript forum'.split(' '), left = 0;
    arr.forEach(function(it) {
      left += fn(it,left) + 30;
    });
  </script>

</body>
</html>

SuperZen 24.07.2018 16:46

проще getComputedStyle
https://learn.javascript.ru/styles-and-classes

Начинающий-Js-кодер 24.07.2018 16:59

Спасибо огромное


Часовой пояс GMT +3, время: 09:46.