files/en-us/web/api/window/innerwidth/index.md
{{APIRef}}
The read-only {{domxref("Window")}} property innerWidth returns the interior width of the window in pixels (that is, the width of the window's {{Glossary("layout viewport")}}). That includes the width of the vertical scroll bar, if one is present.
Similarly, the interior height of the window (that is, the height of the layout viewport) can be obtained using the {{domxref("Window.innerHeight", "innerHeight")}} property. That measurement also accounts for the height of the horizontal scroll bar, if it is visible.
An integer value indicating the width of the window's layout viewport in pixels. This property is read-only, and has no default value.
To change the window's width, use one of the {{domxref("Window")}} methods for resizing windows, such as {{domxref("Window.resizeBy", "resizeBy()")}} or {{domxref("Window.resizeTo", "resizeTo()")}}.
If you need to obtain the width of the window minus the scrollbar and borders, use the root {{HTMLElement("html")}} element's {{domxref("Element.clientWidth", "clientWidth")}} property instead.
The innerWidth property is available on any window or object that behaves
like a window, such as a frame or tab.
// This will log the width of the viewport
console.log(window.innerWidth);
// This will log the width of the frame viewport within a frameset
console.log(self.innerWidth);
// This will log the width of the viewport of the closest frameset
console.log(parent.innerWidth);
// This will log the width of the viewport of the outermost frameset
console.log(top.innerWidth);
<p>Resize the browser window to fire the <code>resize</code> event.</p>
<p>Window height: <span id="height"></span></p>
<p>Window width: <span id="width"></span></p>
const heightOutput = document.querySelector("#height");
const widthOutput = document.querySelector("#width");
function updateSize() {
heightOutput.textContent = window.innerHeight;
widthOutput.textContent = window.innerWidth;
}
updateSize();
window.addEventListener("resize", updateSize);
{{EmbedLiveSample('Demo')}}
You can also {{LiveSampleLink('Demo', 'view the results of the demo code in a separate page')}}.
{{Specifications}}
{{Compat}}