@lexaxaxa

Можно ли возвращать значение свойства width элемента в переменную?

Можно ли возвращать значение свойства width элемента в переменную ? Нужно выразить габариты одного элемента через габариты другого:
var b = window.innerWidth;
var a = document.getElementById("id1").style.width;  // не работает.width id1 задана во внешнем стиле(например=250px)
document.getElementById("id2").style.width = a+"px"; // не работает
document.getElementById("id2").style.width = String(b)+"px"; // все хорошо
document.getElementById("id2").style.width = String(a)+"px"; // не работает
document.getElementById("id2").style.width = "50 px"; // с установкой непосредственного значения нет проблем
  • Вопрос задан
  • 184 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Должно быть вот так
В document.getElementById("id1").style хранятся значения из атрибута style для этого элемента. Если стили заданы в css, получить к ним доступ через element.style нельзя.
А вообще, если ваши цели не исключительно образовательные, используйте jQuery.
Ответ написан
Комментировать
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Вот оно — поколение jQuery... Ничего, кроме библиотек, не знают...

Есть метод глобального объекта getComputedStyle, предназначенный именно для получения стилей из всех источников, включая стили пользователя, агента и описанные в элементе style (подключённые через link), а не только инлайн-стили (описанные в атрибуте style).

Для получения размера элемента по границе border-box в интерфейсе Element существует существует метод getBoundingClientRect, возвращающий объект с координатами границ относительно левого верхнего угла текущей области просмотра (он же viewport).

Также для получения информации о размерах элемента в том же интерфейсе Element есть 3 группы — offset, client и scroll, в каждой из которых по 4 свойства. В данном конкретном случае можно, в зависимости от цели, использовать clientWidth, scrollWidth или offsetWidth. Разница между свойствами — границы области (border-box, padding-box и он же, но без учёта линеек прокрутки).

Написал, и задумался — а кому это надо?..
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы