resize CSS property
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Want more browser support for this feature? Tell us why.
The resize CSS property sets whether an element is resizable, and if so, in which directions.
Try it
resize: both;
resize: horizontal;
resize: vertical;
resize: none;
<section class="default-example" id="default-example">
<div id="example-element">Try resizing this element.</div>
</section>
#example-element {
background: linear-gradient(135deg, cyan 0%, cyan 94%, white 95%);
border: 3px solid #c5c5c5;
overflow: auto;
width: 250px;
height: 250px;
font-weight: bold;
color: black;
display: flex;
align-items: center;
justify-content: center;
padding: 10px;
}
resize does not apply to the following:
- Inline elements
- Block elements for which the
overflowproperty is set tovisibleorclip
Syntax
/* Keyword values */
resize: none;
resize: both;
resize: horizontal;
resize: vertical;
resize: block;
resize: inline;
/* Global values */
resize: inherit;
resize: initial;
resize: revert;
resize: revert-layer;
resize: unset;
The resize property is specified as a single keyword value from the list below.
Values
none-
The element offers no user-controllable method for resizing it.
both-
The element displays a mechanism for allowing the user to resize it, which may be resized both horizontally and vertically.
horizontal-
The element displays a mechanism for allowing the user to resize it in the horizontal direction.
vertical-
The element displays a mechanism for allowing the user to resize it in the vertical direction.
block-
The element displays a mechanism for allowing the user to resize it in the block direction (either horizontally or vertically, depending on the
writing-modeanddirectionvalue). inline-
The element displays a mechanism for allowing the user to resize it in the inline direction (either horizontally or vertically, depending on the
writing-modeanddirectionvalue).
Formal definition
| Initial value | none |
|---|---|
| Applies to | elements with overflow other than visible, and optionally replaced elements representing images or videos, and iframes |
| Inherited | no |
| Computed value | as specified |
| Animation type | discrete |
Formal syntax
resize =
none |
both |
horizontal |
vertical |
block |
inline
Examples
>Disabling resizability of text areas
In many browsers, <textarea> elements are resizable by default. You may override this behavior with the resize property.
HTML
<textarea>Type some text here.</textarea>
CSS
textarea {
resize: none; /* Disables resizability */
}
Result
Using resize with arbitrary elements
You can use the resize property to make any element resizable. In the example below, a resizable <div> contains a resizable paragraph (<p> element).
HTML
<div class="resizable">
<p class="resizable">
This paragraph is resizable in all directions, because the CSS `resize`
property is set to `both` on this element.
</p>
</div>
CSS
.resizable {
resize: both;
overflow: scroll;
border: 1px solid black;
}
div {
height: 300px;
width: 300px;
}
p {
height: 200px;
width: 200px;
}
Result
Specifications
| Specification |
|---|
| CSS Basic User Interface Module Level 4> # resize> |