Description: Get the current computed width for the first element in the set of matched elements.
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.
This method is also able to find the width of the window and document.
$(window).width(); // returns width of browser viewport $(document).width(); // returns width of HTML document
<!DOCTYPE html>
<html>
<head>
<style>
body { background:yellow; }
button { font-size:12px; margin:2px; }
p { width:150px; border:1px red solid; }
div { color:red; font-weight:bold; }
</style>
<script src="https://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<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>
<script>
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());
});
</script>
</body>
</html>
Description: Set the CSS width of each element in the set of matched elements.
valueAn integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string).
function(index, width)A function returning the width to set. Receives the index position of the element in the set and the old width as arguments.
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.
If no explicit unit was specified (like 'em' or '%') then "px" is concatenated to the value.
<!DOCTYPE html>
<html>
<head>
<style>
div { width:70px; height:50px; float:left; margin:5px;
background:red; cursor:pointer; }
</style>
<script src="https://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div></div>
<div>d</div>
<div>d</div>
<div>d</div>
<div>d</div>
<script>
$("div").one('click', function () {
$(this).width(30)
.css({cursor:"auto", "background-color":"blue"});
});
</script>
</body>
</html>