Свойства clientWidth и clientHeight в JavaScript

Используя свойства clientWidth и clientHeight, вы можете получить размер HTML-элемента в пикселях. Размеры рассчитываются с использованием размеров контента внутри HTML-элемента вместе с отступами.

Примечание: Границы, поля или полосы прокрутки (если они есть) при вычислении clientWidth и clientHeight исключаются.

Использование clientWidth и clientHeight

Давайте взглянем на следующий пример использования этих свойств на практике: 

***

<div id="foo">
  Hello World
</div>

***

const clientWidth = document.querySelector('#foo').clientWidth;
const clientHeight = document.querySelector('#foo').clientHeight;

Примеры

В качестве упражнения попробуйте вычислить значение clientWidth и clientHeight следующего элемента HTML:

/**********************************************
 **  If the HTML element is <div id="foo"/>  **
 **********************************************/
const clientWidth = document.querySelector('div#foo').clientWidth;
const clientHeight = document.querySelector('div#foo').clientHeight;
console.log(clientWidth, clientHeight);
// --> 200, 100

Как вычисляется данное значение? Свойства сложили отступы с контентом внутри элемента HTML и проигнорировали поля и границы:

(10 + 50) + 140   // clientWidth === 200
(30) + 70         // clientHeight === 100

Давайте попробуем выполнить другой пример. Попробуйте вычислить clientWidth и clientHeight этого HTML-элемента:

(10 + 10) + 230   // clientWidth === 250
(30 + 20) + 70    // clientHeight === 120

Примечания 

  • clientWidth и clientHeight не работают со встроенными элементами HTML (такими как span, em или a). Они просто вернут 0.
  • Данные свойства округляют значения до ближайшего целого числа. Если вам нужны более точные значения, используйте getBoundingClientRect()
  • Вы не можете присвоить новое значение, чтобы изменить размеры HTML-элемента. Например, это выражение ничего не сделает: someElement.clientWidth = 30

clientWidth и clientHeight поддерживаются всеми основными настольными и мобильными браузерами.

За подробной информацией о clientWidth и clientHeight обратитесь к их спецификациям.

Читайте также: Object.values и Object.entries в JavaScript

Tags:

Добавить комментарий