Get the Element's Actual Width and Height in JavaScript (original) (raw)

Last Updated : 22 May, 2026

In JavaScript, retrieving the width and height of an HTML element helps in creating dynamic and responsive web pages. It is commonly used for adjusting layouts, animations, and positioning elements accurately.

Below are the approaches to get the element's actual width and height in JavaScript:

**Approach 1: Using offsetWidth and offsetHeight Properties

The offsetWidth and offsetHeight properties in JavaScript are used to retrieve the actual width and height of an HTML element. These properties are part of the element interface and are available for all HTML elements.

**Uses:

**Syntax:

const element = document.getElementById("HTML element");
console.log("Width: " + element.offsetWidth + "px");
console.log("Height: " + element.offsetHeight + "px");

**Example: The offsetWidth and offsetHeight properties in JavaScript are used to get the actual width and height of HTML elements, including padding and borders. These properties help developers measure element dimensions accurately for dynamic web page behavior.

HTML `

offsetWidth and offsetHeight Example

GeekforGeeks

<p id="paragraph">
    Computer Science Portal
</p>

<p id="widthHeight"></p>

<script>
    const header = document.getElementById("header");
    const paragraph = document.getElementById("paragraph");
    const widthHeight = document.getElementById("widthHeight");
    
    widthHeight.innerHTML =
        "Header Width: " + header.offsetWidth + "px" + "<br>" +
        "Header Height: " + header.offsetHeight + "px" + "<br>" +
        "Paragraph Width: " + paragraph.offsetWidth + "px" + "<br>" +
        "Paragraph Height: " + paragraph.offsetHeight + "px";
</script>

`

There are some limitations of using the offsetWidth and offsetHeight properties. The problem with this approach is that offsetWidth and offsetHeight are properties belonging to the element and not its style. So in some cases, they may return a value of 0 if you have modified the DOM element.

To overcome these limitations, you can use the getBoundingClientRect() method.

Approach 2 : Using **getBoundingClientRect() method

The getBoundingClientRect() method in JavaScript is another way to retrieve the actual width and height of an HTML element. This method returns a DOMRect object that represents the size of an element and its position relative to the viewport.

The DOMRect object has several properties that can be used to determine the size and position of an element, including:

**Syntax:

const element = document.getElementById("HTML element");
const rect = element.getBoundingClientRect();
console.log("Width: " + rect.width + "px");
console.log("Height: " + rect.height + "px");

**Example: Here,it demonstrates the use of the getBoundingClientRect() method. In this code, the getBoundingClientRect() method is used to get the size and position of the header and paragraph elements. The width, height, top, bottom, left, and right properties of the returned objects are then used to display the size and position of each element

HTML `

Bounding Client Rect Example

GeekforGeeks

<p id="paragraph">
    Computer Science Portal
</p>

<p id="rectData"></p>

<script>
    const header = document.getElementById("header");
    const paragraph = document.getElementById("paragraph");
    const rectData = document.getElementById("rectData");
    const headerRect = header.getBoundingClientRect();
    const paragraphRect = paragraph.getBoundingClientRect();
    rectData.innerHTML =
        "Header Width: " + headerRect.width + "px" + "<br>" +
        "Header Height: " + headerRect.height + "px" + "<br>" +
        "Header Top: " + headerRect.top + "px" + "<br>" +
        "Header Bottom: " + headerRect.bottom + "px" + "<br>" +
        "Header Left: " + headerRect.left + "px" + "<br>" +
        "Header Right: " + headerRect.right + "px" + "<br>" +
        "Paragraph Width: " + paragraphRect.width + "px" + "<br>" +
        "Paragraph Height: " + paragraphRect.height + "px" + "<br>" +
        "Paragraph Top: " + paragraphRect.top + "px" + "<br>" +
        "Paragraph Bottom: " + paragraphRect.bottom + "px" + "<br>" +
        "Paragraph Left: " + paragraphRect.left + "px" + "<br>" +
        "Paragraph Right: " + paragraphRect.right + "px";
</script>

`