Как получить высоту элемента js
Перейти к содержимому

Как получить высоту элемента js

  • автор:

Узнать высоту элемента через Javascript, если она прописана в стилевом файле

Как я могу получить атрибут height элемента через Javascript, если он прописан в стилевом файле style.css ? style.css:

.menu_bottom
   

Нужно, чтобы сообщение alert(. ) показало высоту данного элемента (просто число, без единицы измерения).

Отслеживать
задан 6 окт 2015 в 14:46
2,510 5 5 золотых знаков 31 31 серебряный знак 61 61 бронзовый знак
ассоциация: stackoverflow.com/q/15615552/5812238
7 окт 2017 в 18:51

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

проще всего использовать jQuery :

$('#menu_bottom').height(); 

без jQuery можно использовать:

var h = document.getElementById('menu_bottom').clientHeight; var h = document.getElementById('menu_bottom').offsetHeight; var h = document.getElementById('menu_bottom').scrollHeight; 

clientHeight высота содержимого вместе с полями padding, но без полосы прокрутки.

offsetHeight «внешняя» высота блока, включая рамки.

scrollHeight полная внутренняя высота, включая прокрученную область.

JavaScript: 4 способа получить width и height элемента

Как получить ширину и высоту HTML элемента с помощью обычного (чистого) JavaScript. Vanilla JavaScript (нативный JavaScript) уже давно позволяет кроссбраузерно получить размеры HTML элемента, без использования сторонних библиотек вроде jQuery. Не все пользуются этой возможностью, возможно потому что у блока есть несколько размеров (с отступами и без них) и не всегда понятно как и какой получить и где и какой использовать. Давайте разберемся, как получить ширину и высоту элемента используя встроенные в браузер JS методы и чем они друг от друга отличаются.

Оглавление:

  • CSS Box Model
  • box-sizing
  • Как получить ширину и высоту элемента в JS?
  • offsetHeight и offsetWidth
  • clientHeight и clientWidth
  • Метод getBoundingClientRect()
  • Метод window.getComputedStyle()

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

JavaScript: 4 способа получить width и height элемента

Как получить ширину и высоту HTML элемента с помощью обычного (чистого) JavaScript. Vanilla JavaScript (нативный JavaScript) уже давно позволяет кроссбраузерно получить размеры HTML элемента, без использования сторонних библиотек вроде jQuery. Не все пользуются этой возможностью, возможно потому что у блока есть несколько размеров (с отступами и без них) и не всегда понятно как и какой получить и где и какой использовать. Давайте разберемся, как получить ширину и высоту элемента используя встроенные в браузер JS методы и чем они друг от друга отличаются.

Оглавление:

  • CSS Box Model
  • box-sizing
  • Как получить ширину и высоту элемента в JS?
  • offsetHeight и offsetWidth
  • clientHeight и clientWidth
  • Метод getBoundingClientRect()
  • Метод window.getComputedStyle()

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

Как получить высоту с помощью JavaScript?

Метод 1. Использование свойства offsetHeight: свойство offsetHeight элемента доступно только для чтения и используется для возврата высоты элемента в пикселях. Он включает в себя любые границы или отступы элемента. Это свойство можно использовать для определения высоты элемента .

Синтаксис:

divElement.offsetHeight

Пример:

How to get the div height
using JavaScript ?
height: 100px;
width: 100px;
background-color: green;
display:inline-block;
GeeksforGeeks
Get the height of < div >
element using JavaScript
Click on the button to get the height
of < div >element
Height of the div:
Get Height
function getHeight() < divElement = document.querySelector(".box"); elemHeight = divElement.offsetHeight; document.querySelector(".output").textContent = elemHeight + "px";

Выход:

  • Перед нажатием кнопки:
  • После нажатия кнопки:

Метод 2: Использование свойства clientHeight. Свойство clientHeight элемента доступно только для чтения и используется для возврата высоты элемента в пикселях. Он включает только заполнение, примененное к элементу, и исключает границы, поля и горизонтальные полосы прокрутки. Это свойство можно использовать для определения высоты элемента div. Синтаксис:

divElement.clientHeight

Пример:
How to get the div height
using JavaScript ?
height: 100px;
width: 100px;
background-color: green;
display:inline-block;
GeeksforGeeks
Get the height of < div >
element using JavaScript
Click on the button to get the height
of < div >element
Height of the div:
Get Height
function getHeight() < divElement = document.querySelector(".box"); elemHeight = divElement.clientHeight; document.querySelector(".output").textContent = elemHeight + "px";

Выход:

  • Перед нажатием кнопки:
  • После нажатия кнопки:

Метод 3. Использование метода getBoundingClientRect (). Метод getBoundingClientRect () используется для возврата объекта DOMRect, который содержит 8 свойств, связанных с размерами ограничивающего прямоугольника.
Одним из этих свойств объекта DOMRect является свойство height. Возвращает высоту объекта DOMRect. Это свойство можно использовать для определения высоты элемента div. Синтаксис:

elemRect = divElement.getBoundingClientRect (); elemHeight = elemRect.height;

Пример:
How to get the div height
using JavaScript ?
height: 100px;
width: 100px;
background-color: green;
display:inline-block;
GeeksforGeeks
Get the height of < div >
element using JavaScript
Click on the button to get the height
of < div >element
Height of the div:
Get Height
function getHeight() < divElement = document.querySelector(".box"); elemRect = divElement.getBoundingClientRect(); elemHeight = elemRect.height; document.querySelector(".output").textContent = elemHeight + "px";

Выход:

  • Перед нажатием кнопки:
  • После нажатия кнопки:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *