I created a utility function for this, with high flexibility:
export type Size = {width: number, height: number};
export enum GetSize_Method {
/** Includes: content, padding. Excludes: border, margin, scroll-bar (if it has one), "position:absolute" descendants. */
ClientSize = "ClientSize",
/** Includes: content, padding, border, margin, scroll-bar (if it has one). Excludes: "position:absolute" descendants. */
OffsetSize = "OffsetSize",
/** Includes: content, padding, border, margin, scroll-bar (if it has one), "position:absolute" descendants. Excludes: none. */
ScrollSize = "ScrollSize",
/** Same as ScrollSize, except that it's calculated after the element's css transforms are applied. */
BoundingClientRect = "BoundingClientRect",
/** Lets you specify the exact list of components you want to include in the size calculation. */
Custom = "Custom",
}
export type SizeComp = "content" | "padding" | "border" | "margin" | "scrollBar" | "posAbsDescendants";
export function GetSize(el: HTMLElement, method = GetSize_Method.ClientSize, custom_sizeComps?: SizeComp[]) {
let size: Size;
if (method == GetSize_Method.ClientSize) {
size = {width: el.clientWidth, height: el.clientHeight};
} else if (method == GetSize_Method.OffsetSize) {
size = {width: el.offsetWidth, height: el.offsetHeight};
} else if (method == GetSize_Method.ScrollSize) {
size = {width: el.scrollWidth, height: el.scrollHeight};
} else if (method == GetSize_Method.BoundingClientRect) {
const rect = el.getBoundingClientRect();
size = {width: rect.width, height: rect.height};
} else if (method == GetSize_Method.Custom) {
const style = window.getComputedStyle(el, null);
const styleProp = (name: string)=>parseFloat(style.getPropertyValue(name));
const padding = {w: styleProp("padding-left") + styleProp("padding-right"), h: styleProp("padding-top") + styleProp("padding-bottom")};
const base = {w: el.clientWidth - padding.w, h: el.clientHeight - padding.h};
const border = {w: styleProp("border-left") + styleProp("border-right"), h: styleProp("border-top") + styleProp("border-bottom")};
const margin = {w: styleProp("margin-left") + styleProp("margin-right"), h: styleProp("margin-top") + styleProp("margin-bottom")};
const scrollBar = {w: (el.offsetWidth - el.clientWidth) - border.w - margin.w, h: (el.offsetHeight - el.clientHeight) - border.h - margin.h};
const posAbsDescendants = {w: el.scrollWidth - el.offsetWidth, h: el.scrollHeight - el.offsetHeight};
const sc = (name: SizeComp, valIfEnabled: number)=>custom_sizeComps.includes(name) ? valIfEnabled : 0;
size = {
width: sc("content", base.w) + sc("padding", padding.w) + sc("border", border.w)
+ sc("margin", margin.w) + sc("scrollBar", scrollBar.w) + sc("posAbsDescendants", posAbsDescendants.w),
height: sc("content", base.h) + sc("padding", padding.h) + sc("border", border.h)
+ sc("margin", margin.h) + sc("scrollBar", scrollBar.h) + sc("posAbsDescendants", posAbsDescendants.h),
};
}
return size;
}
Usage:
const el = document.querySelector(".my-element");
console.log("Size:", GetSize(el, "ClientSize"));
console.log("Size:", GetSize(el, "Custom", ["content", "padding", "border"]));
Как получить ширину и высоту HTML элемента с помощью обычного (чистого) JavaScript.
Vanilla JavaScript (нативный JavaScript) уже давно позволяет кроссбраузерно получить размеры HTML элемента, без использования сторонних библиотек вроде jQuery. Не все пользуются этой возможностью, возможно потому что у блока есть несколько размеров (с отступами и без них) и не всегда понятно как и какой получить и где и какой использовать. Давайте разберемся, как получить ширину и высоту элемента используя встроенные в браузер JS методы и чем они друг от друга отличаются.
CSS Box Model
Что такое Box Model и как она влияет на размеры элемента (ширину и высоту).
Элемент HTML можно представить как коробку (box), которая состоит из четырех областей (частей):
- margin — внешний отступ — пустое пространство вокруг элемента.
- border — рамка — вокруг контента.
- padding — внутренний отступ — пустая пространство, вокруг контента.
- content — текст и другие элементы.
box-sizing
Какая именно будет высота и ширина зависит от CSS свойства box-sizing
:
-
box-sizing: content-box
— размер коробки измеряется относительно контента.
Т.е. говорит браузеру, что размеры указанные вwidth
иheight
относятся только к контенту. А padding и border не входят в указанные width и height и добавляются дополнительно, делая размер всего элемента больше, чем указано в width и height. -
box-sizing: border-box
— размер коробки измеряется относительно border (рамки).
Т.е. говорит браузеру, что в указанные размеры дляwidth
иheight
входит все: content, padding и border.
По умолчанию в браузерах используется box-sizing: content-box
.
Как получить ширину и высоту элемента в JS?
Здесь есть как минимум четыре варианта. Каждый из них имеет свои особенности и подойдет в зависимости от того, какой именно размер вам нужен. Рассмотрим каждый.
offsetHeight
и offsetWidth
Содержат высоту и ширину элемента, включая padding и border (отступы и границы). Возвращаемое значение является целым числом и доступно только для чтения.
const element = document.querySelector( '.element' ); // int значение ширины: content + padding + border. element.offsetWidth; // 110 // int значение высоты: content + padding + border. element.offsetHeight; // 60
Значения округляются до целого числа (не float).
clientHeight
и clientWidth
Содержат высоту и ширину элемента, включая padding (отступы), но исключая border (границы). Возвращаемое значение является целым числом и доступно только для чтения.
const element = document.querySelector( '.element' ); // int значение ширины: content + padding (без border). element.clientWidth; // 100 // int значение высоты: content + padding (без border). element.clientHeight; // 50
Значения округляются до целого числа (не float).
Метод getBoundingClientRect()
Метод getBoundingClientRect() возвращает объект, содержащий все размеры элемента и размеры его положения относительно области просмотра (viewport).
ВАЖНО: width и height метода getBoundingClientRect() вернут значение, основанное на свойстве CSS box-sizing элемента. Например, при box-sizing: border-box
ширина и высота будут включать padding и border.
const element = document.querySelector( '.element' ); const rect = element.getBoundingClientRect() rect.width // 945.59 rect.height // 48.62 rect.right // 1162.79 rect.bottom // 132.44 rect.top // 83.82 rect.y // 83.82 rect.left // 217.19 rect.x // 217.19
height
bottom
x
left
y
width
right
Introduction
This Ecma Standard is based on
several originating technologies,
the most well known being
JavaScript (Netscape) and JScript
(Microsoft). The language was
invented by Brendan Eich at
top
Метод window.getComputedStyle()
Глобальный метод getComputedStyle() возвращает объект, содержащий значения всех вычисленных на данный момент CSS-свойств элемента. Каждое значение CSS доступно через одноименное свойство и имеет строковый тип.
ВАЖНО: width и height свойства объекта getComputedStyle() содержат значения, основанные на свойстве box-sizing элемента. Например, при box-sizing: border-box
ширина и высота будут включать padding и border.
const element = document.querySelector( '.element' ); // строковое значение ширины content в px getComputedStyle( element ).width; // 945.597px // строковое значение ширины content в px getComputedStyle( element ).height; // 501.597px
Чтобы получить число, просто оберните результат в parseInt()
или parseFloat()
:
parseInt( getComputedStyle( element ).height ); // 501 parseFloat( getComputedStyle( element ).height ); // 501.597
—
Смотрите также: https://nikitahl.com/4-ways-to-get-the-width-and-height-of-an-element-with-vanilla-javascript
В этом посте мы обсудим, как получить ширину и высоту элемента с помощью чистого JavaScript.
В JavaScript есть несколько свойств для получения ширины и высоты элемента. В этом посте представлен обзор некоторых из этих свойств.
1. Использование clientWidth
а также clientHeight
характеристики
В JavaScript вы можете использовать clientWidth
а также clientHeight
свойства, чтобы вернуть высоту элемента, включая отступы, но исключая границу, поля или полосы прокрутки. По сути, они возвращают фактическое пространство, используемое отображаемым контентом.
Например, следующий код возвращает ‘520 × 120’.
JS
var clientWidth = document.getElementById(‘container’).clientWidth; var clientHeight = document.getElementById(‘container’).clientHeight; alert(`{clientWidth} x ${clientHeight}`); |
HTML
<div id=«container» class=«main-class»></div> |
CSS
.main-class { border: 1px solid gray; width: 500px; height: 100px; padding: 10px; } |
Изменить в JSFiddle
The scrollWidth
а также scrollHeight
свойства аналогичны clientWidth
а также clientHeight
свойства, за исключением того, что они возвращают фактический размер содержимого, независимо от того, сколько на самом деле видно.
2. Использование offsetWidth
а также offsetHeight
характеристики
В качестве альтернативы, если вам нужно включить границу и полосы прокрутки, вы можете использовать offsetWidth
а также offsetHeight
характеристики. Они возвращают размеры видимого содержимого элемента, включая отступы, границы и полосы прокрутки. Другими словами, они возвращают общее количество места, которое занимает элемент.
Например, следующий код вернет ‘522 × 122’.
JS
var offsetWidth = document.getElementById(‘container’).offsetWidth; var offsetHeight = document.getElementById(‘container’).offsetHeight; alert(`${offsetWidth} x ${offsetHeight}`); |
HTML
<div id=«container» class=«main-class»></div> |
CSS
.main-class { border: 1px solid gray; width: 500px; height: 100px; padding: 10px; } |
Изменить в JSFiddle
3. Использование getBoundingClientRect()
метод
The getBoundingClientRect() Метод возвращает размер элемента. Он возвращает DOMRect
объект с шириной, высотой, левым, верхним, правым, нижним, x и y
характеристики. Возвращаемые ширина и высота элемента могут быть дробными (в отличие от приведенных выше свойств) и включать отступы и границы.
Например, следующий код возвращает ‘522 × 122’.
JS
var rect = document.getElementById(‘container’).getBoundingClientRect(); var height = rect.height; var width = rect.width; alert(`${width} x ${height}`); |
HTML
<div id=«container» class=«main-class»></div> |
CSS
.main-class { border: 1px solid gray; width: 500px; height: 100px; padding: 10px; } |
Изменить в JSFiddle
4. Использование width
а также height
характеристики
Вы также можете использовать width
а также height
свойства, чтобы получить фактическую ширину и высоту элемента с неповрежденными единицами измерения. Обратите внимание, что это будет работать только тогда, когда элемент имеет width
а также height
атрибут, установленный с использованием атрибута стиля.
JS
var width = document.getElementById(‘container’).style.width; var height = document.getElementById(‘container’).style.height; alert(`${width} x ${height}`); |
HTML
<div id=«container» style=«border: 1px solid gray; height: 100px; width: 500px;»></div> |
Изменить в JSFiddle
Вот и все, что нужно для получения ширины и высоты элемента с помощью JavaScript.
В этой статье познакомимся с тем, как в JavaScript получить текущие метрики элемента, включая его ширину и высоту.
Блочная модель CSS
Блочная модель в CSS – это набор правил, на основании которых выполняется расчёт размеров элемента на странице. Эту модель необходимо знать, чтобы понимать, какие размеры будет иметь тот или иной блочный элемент на странице:
Здесь:
content
– содержимое блока (в этом примере его ширинаwidth
равна800px
, а высотаheight
–150px
);padding
– внутренний отступ;border
– рамка;margin
– внешний отступ.
Кроме этого, элемент может иметь ещё outline
(внешнюю границу). Но она не занимает места, не влияет на его размеры и положение.
По умолчанию, когда мы в CSS элементу устанавливаем width
и height
, они применяются к content
:
.box {
width: 800px;
height: 150px;
padding: 15px 20px;
border: 3px solid #696a6f;
margin: 20px 8px;
}
В этом сценарии «внешняя» ширина блока будет 846px
(800 + 20 * 2 + 3 * 2
), а высота – 186px
(150 + 15 * 2 + 3 * 2
).
Но в CSS кроме такого поведения (box-sizing: content-box
) имеется ещё border-box
:
.box {
box-sizing: border-box;
width: 846px;
height: 186px;
padding: 15px 20px;
border: 3px solid #696a6f;
margin: 20px 8px;
}
При такой настройке мы с помощью width
и height
уже устанавливаем элементу внешнюю ширину и высоту. А размеры его content
области будут уже вычисляться исходя из этих значений.
Кроме этого, размер доступной области content
зависит ещё зависит от полос прокрутки. Если полоса прокрутки в браузере на данном устройстве занимает место, то для её отображения будет отбираться соответствующее место у контента.
Размеры элемента
Блочная модель CSS довольно сложна, особенно, когда элемент имеет полосы прокрутки. Поэтому, в JavaScript для описания размеров элемента на странице имеется такое многообразие DOM-свойств:
offsetWidth
иoffsetHeight
– «внешняя» ширина и высота элемента (в пикселях), включая рамку;clientLeft
иclientTop
– толщина левой и верхней границы элемента (если направление текста справа налево, тоclientLeft
включает в себя ещё ширину вертикальной полосы прокрутки);clientWidth
иclientHeight
– ширина и высотаcontent
, включаяpadding
(без прокрутки);scrollWidth
иscrollHeight
– ширина и высотаcontent
, включаяpadding
и содержимое, которое не помещается на экран и требует прокрутки.
Перед тем как рассмотреть пример, отметим, что при разработке сайтов очень часто сразу для всех элементов устанавливают border-box
:
*,
*::before,
*::after {
box-sizing: border-box;
}
Поэтому, изучать размеры элементов будем с учётом этой настройки:
<style>
.box-wrapper {
width: 300px;
height: 400px;
padding: 15px;
margin: 20px;
overflow: scroll;
}
.box-1 {
height: 100px;
margin-bottom: 15px;
}
.box-2 {
height: 150px;
width: 450px;
margin-bottom: 15px;
}
.box-3 {
height: 450px;
}
</style>
<div class="box-wrapper">
<div class="box-1"></div>
<div class="box-2"></div>
<div class="box-3"></div>
</div>
На рисунке в правом верхнем углу показаны значения DOM-свойств для .box-wrapper
:
1. Свойства offsetWidth
и offsetHeight
возвращают «внешние» размеры элемента.
То есть размеры, которые получаются сложением content
,padding
, ширины соответствующей полосы прокрутки (если она отображается и занимает место) и рамки. Для .box-wrapper
:
offsetWidth
равно CSS-ширине или300px
;offsetHeight
равно CSS-высотеheight
или400px
.
Свойства offsetWidth
и offsetHeight
возвращают целые значения. Но фактические размеры элемента могут быть дробными. Поэтому, если нужно узнать точные размеры, то можно воспользоваться getBoundingClientRect
:
// получаем элемент .box-wrapper
const boxWrapperElem = document.querySelector('.box-wrapper');
// целые «внешние» размеры
const width1 = boxWrapperElem.offsetWidth;
const height1 = boxWrapperElem.offsetHeight;
// точные «внешние» размеры
const boxWrapperClientRect = boxWrapper.getBoundingClientRect();
const width2 = boxWrapperClientRec.width;
const height2 = boxWrapperClientRec.height;
2. Свойства clientLeft
и clientTop
возвращают соответственно толщину левой и верхней границ. Но, clientLeft
также включает ширину вертикальной полосы прокрутки, если направление текста установлено справа налево (поскольку в этом случае полоса отображается слева).
В этом примере:
clientLeft
равен15px
(толщине левой рамки);clientTop
возвращает толщину верхней рамки, которая равна15px
.
3. Свойства clientWidth
и clientHeight
возвращают размеры области содержимого элемента, включая внутренние отступы (padding
), но без учета границ (border
) и прокрутки (scroll
).
Свойство clientWidth
равно 253px
и оно на этом устройстве вычислилось следующим образом:
300px
(offsetWidth
);-15px
(clientLeft
или толщина левой рамки);-15px
(толщина правой рамки.box-wrapper
);-17px
(ширина прокрутки на этом устройстве).
Свойство clientHeight
равно 353px
и оно на этом устройстве вычислилось следующим образом:
400px
(offsetHeight
);-15px
(clientTop
или толщина верхней рамки);-15px
(толщина нижней рамки);-17px
(ширина горизонтальной прокрутки на этом устройстве).
4. Свойства scrollWidth
и scrollHeight
возвращают размеры области содержимого элемента, включая внутренние отступы (padding
) и содержимое, которое не помещается на экране и требует прокрутки.
Свойство scrollWidth
аналогично clientWidth
, но учитывает контент .box-wrapper
, который не видно. В этом примере scrollWidth
равна 480px
:
15px
(padding-left
блока.box-wrapper
);450px
(ширина блока.box-2
, так как из-за него и возникает прокрутка);15px
(padding-right
блока.box-wrapper
).
Величина scrollHeight
равна 760px
. Её можно посчитать следующим образом:
15px
(padding-top
блока.box-wrapper
);100px
(внешняя высота.box-1
);15px
(margin-bottom
, установленный для.box-1
);150px
(внешняя высота.box-2
);15px
(margin-bottom
, установленный для.box-2
);450px
(внешняя высота.box-3
);15px
(padding-bottom
блока.box-wrapper
).
Положение элемента
Кроме размеров элемента, нам также очень важно знать как он расположен на странице. В JavaScript мы можем это получить с помощью DOM-свойств offsetLeft
и offsetTop
.
Очень важно, эти свойства показывают положение элемента (его смещение) относительно offsetParent
.
Например, определим позицию элемента #child
на странице относительно его offsetParent
(в данном примере им является #parent
):
<div id="parent" style="position: relative; padding: 10px 15px;">
<div id="child">
</div>
<script>
const child = document.querySelector('#child');
console.log(childElem.offsetParent.id); // "parent"
console.log(childElem.offsetLeft); // 15
console.log(childElem.offsetTop); // 10
</script>
Теперь рассмотрим, что такое offsetParent
.
offsetParent
– это свойство элемента, с помощью которого мы можем получить ближайшего предка с position
отличным от static
. Другими словами, оно позволяет найти предка относительного которого данный элемент позиционируется.
Поиск предка всегда начинается с родителя, дальше осуществляется переход к родителю его родителя и так далее. Если на очередном шаге элемент отвечает искомому, то он возвращается в качестве результата. В противном случае document.body
.
Например, найдём offsetParent
для элемента, который помещён в блок, у которого position
равен absolute
:
<div id="parent" style="position: absolute;">
<div id="child"></div>
</div>
<script>
const childElem = document.querySelector('#child');
const offsetParentElem = childElem.offsetParent;
// найдём ближайший родительский элемент с position отличным от static
console.log(offsetParentElem);
</script>
Кроме этого offsetParent
рассматривает в качестве цели не только элементы с position
отличным от static
, но и <table>
, <td>
и <th>
.
Пример использования:
const tdElem = document.querySelector('#myTd');
const tdOffsetParentElem = tdElem.offsetParent;
// выведем ближайший родительский элемент таблицы с position отличным от static
console.log(tdOffsetParentElem);
const tableElem = document.querySelector('#myTable');
const tableOffsetParentElem = tableElem.offsetParent;
// выведем ближайший родительский элемент с position отличным от static, который может быть как внутри таблицы, так и за ее пределами
console.log(tableOffsetParentElem);
При этом предком может быть только:
- позиционированный элемент, т.е. такой, который имеет
position
отличное отstatic
, т.е.relative
,absolute
,fixed
илиsticky
; <td>
,<th>
или<table>
;<body>
.
offsetParent
возвращает null
в следующих ситуациях:
- для
<body>
; - элемент не отображается (он или его предок имеет
display:none
) или его нет в документе (он создан, но не вставлен); - элемент имеет фиксированное позиционирование
position:fixed
;
Положение прокрутки определяется с помощью свойств scrollLeft
и scrollTop
. Они показывают количество пикселей, на которое прокручено содержимое элемента по горизонтали и вертикали.
Свойства scrollLeft
и scrollTop
в отличие от других доступны не только для чтения, но и для изменения.
scrollLeft и scrollTop — это свойства объекта элемента в JavaScript, которые возвращают текущую позицию прокрутки элемента по горизонтали и вертикали соответственно. Они могут использоваться для определения текущей позиции прокрутки элемента и для управления прокруткой программно. Например, чтобы прокрутить элемент вверх или вниз на определенное количество пикселей, можно установить значение свойства scrollTop равным нужному количеству пикселей.
В отличие от большинства свойств, которые доступны только для чтения, значения scrollLeft и scrollTop можно изменять, и браузер выполнит прокрутку элемента.
<div class="box-wrapper">
...
</div>
<script>
// получим элемент .box-wrapper
const boxWrapperElem = document.querySelector('.box-wrapper');
// выведем в консоль позицию горизонтальной прокрутки
console.log(boxWrapperElem.scrollLeft);
// выведем в консоль позицию вертикальной прокрутки
console.log(boxWrapperElem.scrollTop);
// установим в качестве прокрутки по x значение 100px
boxWrapperElem.scrollLeft = 100;
// прокрутим по у на 50px
boxWrapperElem.scrollTop += 50;
</script>
Разное
Для задания элементу ширины и высоты следует использовать стили:
<div id="box"></div>
<script>
const $box = document.querySelector('#box');
// устанавливаем ширину $box
$box.style.width = '100px';
// устанавливаем высоту $box
$box.style.height = '100px';
</script>
Задачи
1. Устранить сдвиг при открытии модального окна
При открытии модального окна мы добавляем к body
свойство overflow:hidden
.
При этом, если у нас отображается вертикальная полоса прокрутки, которая занимает место, то при обрезании контента происходит смещение контента.
Эту ситуацию необходимо исправить.
Подсказки:
- необходимо вычислить ширину прокрутки (т.к. в разных браузерах и на разных устройствах она может иметь разную ширину);
- при открытии модального окна следует добавить к body правый margin со значением которое будет компенсировать ширину прокрутки.
Summary: in this tutorial, you will learn how to get the current computed dimension of an element, including width and height.
The following picture displays the CSS box model that includes a block element with content, padding, border, and margin:
To get the element’s width and height that include the padding and border, you use the offsetWidth
and offsetHeight
properties of the element:
let box = document.querySelector('.box');
let width = box.offsetWidth;
let height = box.offsetHeight;
Code language: JavaScript (javascript)
The following picture illustrates the offsetWidth
and offsetHeight
of an element:
See the following example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Getting the Width and Height of an Element</title>
</head>
<body>
<div class="box" style="width:100px;height:150px;border:solid 1px #000;padding:10px"></div>
<script>
let box = document.querySelector('.box');
let width = box.offsetWidth;
let height = box.offsetHeight;
console.log({ width, height });
</script>
</body>
</html>
Code language: HTML, XML (xml)
Output:
{width: 122, height: 172}
Code language: CSS (css)
In this example:
- The width is 100px
- The border is 1px on each side, so 2px for both
- The padding 10px on each side, so 20px for both
Therefore, the total width 12px. Similarly, the height is 172px.
To get the width & height of an element as floating-point after CSS transformation, you use the getBoundingClientRect()
method of the DOM element. For example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Getting the Width and Height of an Element</title>
</head>
<body>
<div class="box" style="width:100px;height:150px;border:solid 1px #000;padding:10px"></div>
<script>
let box = document.querySelector('.box');
let width = box.offsetWidth;
let height = box.offsetHeight;
console.log({ width, height });
const domRect = box.getBoundingClientRect();
console.log(domRect);
</script>
</body>
</html>
Code language: HTML, XML (xml)
Output:
{width: 122, height: 172}
DOMRect {x: 7.997685432434082, y: 7.997685432434082, width: 121.95602416992188, height: 171.95602416992188, top: 7.997685432434082, …}
Code language: CSS (css)
clientWidth & clientHeight
To get the element’s width and height that include padding but without the border, you use the clientWidth
and clientHeight
properties:
let box = document.querySelector('.box');
let width = box.clientWidth;
let height = box.clientHeight;
Code language: JavaScript (javascript)
The following picture illustrates the clientWidth
and clientHeight
of an element:
To get the margin of an element, you use the getComputedStyle()
method:
let box = document.querySelector('.box');
let style = getComputedStyle(box);
let marginLeft = parseInt(style.marginLeft);
let marginRight = parseInt(style.marginRight);
let marginTop = parseInt(style.marginTop);
let marginBottom = parseInt(style.marginBottom);
Code language: JavaScript (javascript)
To get the border width of an element, you use the property of the style
object returned by the getComputedStyle()
method:
let box = document.querySelector('.box');
let style = getComputedStyle(box);
let borderTopWidth = parseInt(style.borderTopWidth) || 0;
let borderLeftWidth = parseInt(style.borderLeftWidth) || 0;
let borderBottomWidth = parseInt(style.borderBottomWidth) || 0;
let borderRightWidth = parseInt(style.borderRightWidth) || 0;
Code language: JavaScript (javascript)
To get the height and width of the window, you use the following code:
let width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
let height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
Code language: JavaScript (javascript)
Summary
- Use offsetWidth & offsetHeight properties of the DOM element to get its the width and height.
Was this tutorial helpful ?