.width()

Get the current computed width for the first element in the set of matched elements. Set the CSS width of each element in the set of matched elements.

.width()🡢 Number

The difference between .css( "width" ) and .width() is that the latter returns a unit-less pixel value (for example, 400) while the former returns a value with units intact (for example, 400px). The .width() method is recommended when an element's width needs to be used in a mathematical calculation.

Figure 1 - Illustration of the measured width

This method is also able to find the width of the window and document.

// Returns width of browser viewport
$(window).width();

// Returns width of HTML document
$(document).width();

Note that .width() will always return the content width, regardless of the value of the CSS box-sizing property. As of jQuery 1.8, this may require retrieving the CSS width plus box-sizing property and then subtracting any potential border and padding on each element when the element has box-sizing: border-box. To avoid this penalty, use .css( "width" ) rather than .width().

Note: Although style and script tags will report a value for .width() or height() when absolutely positioned and given display:block, it is strongly discouraged to call those methods on these tags. In addition to being a bad practice, the results may also prove unreliable.

Show various widths. Note the values are from the iframe so might be smaller than you expected. The yellow highlight shows the iframe body.

JS
<button id="getp">Get Paragraph Width</button>
<button id="getd">Get Document Width</button>
<button id="getw">Get Window Width</button>
<div></div>
<p>Sample paragraph to test width</p>
CSS
body {
  background: yellow;
}
button {
  font-size: 12px;
  margin: 2px;
}
p {
  width: 150px;
  border: 1px red solid;
}
div {
  color: red;
  font-weight: bold;
}
HTML
function showWidth(ele, w) {
  $("div").text("The width for the " + ele + " is " + w + "px.");
}
$("#getp").click(function () {
  showWidth("paragraph", $("p").width());
});
$("#getd").click(function () {
  showWidth("document", $(document).width());
});
$("#getw").click(function () {
  showWidth("window", $(window).width());
});
DEMO

.width(value)🡢 jQuery

value String, NumberAn integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string).

.width(function(indexInteger, valueInteger))

function(indexInteger, valueInteger) FunctionA function returning the width to set. Receives the index position of the element in the set and the old width as arguments. Within the function, this refers to the current element in the set.

When calling .width("value"), the value can be either a string (number and unit) or a number. If only a number is provided for the value, jQuery assumes a pixel unit. If a string is provided, however, any valid CSS measurement may be used for the width (such as 100px, 50%, or auto). Note that in modern browsers, the CSS width property does not include padding, border, or margin, unless the box-sizing CSS property is used.

If no explicit unit is specified (like "em" or "%") then "px" is assumed.

Note that .width("value") sets the content width of the box regardless of the value of the CSS box-sizing property.

Change the width of each div the first time it is clicked (and change its color).

JS
<div>d</div>
<div>d</div>
<div>d</div>
<div>d</div>
<div>d</div>
CSS
div {
  width: 70px;
  height: 50px;
  float: left;
  margin: 5px;
  background: red;
  cursor: pointer;
}
.mod {
  background: blue;
  cursor: default;
}
HTML
var modWidth = 50;
$("div").one("click", function () {
  $(this).width(modWidth).addClass("mod");
  modWidth -= 8;
});
DEMO

Looking for a Web Developer?

👋

Hi! I'm Basti, author of this site. If you are looking for a web developer with 15+ years of experience, holla at me!

Be it the good 'ol jQuery, vanilla JS or modern frameworks like Vue and Svelte, front- or backend, I can help you.

Just write me at jobs@jqapi.com :)