DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费积分!
resize
属性控制用户是否以及如何通过单击并拖动元素的右下角来调整元素的大小。
.module {
resize: both;
}
非常重要的一点:除非 overflow
属性 设置为除 visible
之外的任何值(对于大多数元素,其初始值为 visible
),否则 resize
不会起作用。
还值得注意的是,Firefox 允许您将元素调整为小于其原始大小。Webkit 浏览器不允许您将元素调整为更小,只能更大(在两个维度上)。
值
none
:元素不可调整大小。这是大多数元素的初始值。textarea
元素是最常见的例外——在许多浏览器中,它的默认resize
值为both
。both
:用户可以调整元素的高度和/或宽度。horizontal
:用户可以水平调整元素大小(增加宽度)。vertical
:用户可以垂直调整元素大小(增加高度)。inherit
:元素继承其父元素的 resize 值。
当元素可调整大小时,它在右下角有一个小的 UI 手柄。当页面的 direction
设置为 ltr
(从左到右)时,手柄出现在页面元素的右侧;当设置为 rtl
(从右到左)时,手柄出现在左侧。

演示
此演示中可调整大小的元素是段落。单击按钮以尝试不同的 resize
值。
查看 CodePen 上由 CSS-Tricks (@css-tricks) 制作的 调整大小演示。
相关
更多信息
浏览器支持
这些浏览器支持数据来自 Caniuse,其中包含更多详细信息。数字表示浏览器在该版本及更高版本上支持该功能。
台式机
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
4 | 4* | 否 | 79 | 4 |
移动设备/平板电脑
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
127 | 127 | 127 | 否 |
嘿,哥们。非常感谢你分享的所有技巧。
Muchas gracias!
这也可以应用于 onresize 事件吗?
我知道这有点晚了,但
window
是 DOM 中唯一触发onresize
事件的部分。嘿,Chris,
你一直是我所有 CSS 问题的首选资源,感谢多年来的帮助!
只想扩展一下你关于 Chrome 与 Firefox 之间差异的观点。我假设你可以在可调整大小的元素上指定一个最小宽度、一个宽度和一个最大宽度,默认宽度将采用加载宽度。然后用户应该能够在最小宽度和最大宽度之间更改宽度。在 Firefox 中似乎就是这样,但在 Chrome 中却并非如此。
有什么想法吗?Chrome 可能会改变实现方式以在 Chrome 中也实现 Firefox 的行为吗?
谢谢,
Josh
嗨,
css resize:both 对于 iframe 在 IE 和 firefox 中不起作用,但在 chrome 中运行良好……请给我一些建议。
可能值得补充的是,可以使用 max-width 和 max-height 来限制元素可以调整的大小。例如,可以阻止它变得太大而超出其父元素。
回复晚了,但也许对某些人仍然有帮助。
我发现 webkit 限制无法缩小元素非常令人沮丧,我发现添加
:active{ width:0; height: 0; }
有所帮助。推荐
width
、height
以获得合理的大小。min-width
、min-height
以获得合理的最小大小,这样你就不会得到一个难以再次放大的 0x0 框。max-width
、max-height
以获得合理的最大大小,这样你就不会将角拖出窗口。笔记
并且可能会保持这种状态,直到您单击或点击元素外部。
在这里测试:https://jsfiddle.net/ElMoonLite/771Ln5vu/
完整示例
resize 是否允许指定要应用到的角或边缘?
以及图标/区域的样式。
示例:绝对的左下角区域可能希望从顶部边缘垂直调整大小。
更新/更正:Chrome 61+(不再是 WebKit 浏览器)确实允许缩小。 https://bugs.chromium.org/p/chromium/issues/detail?id=94583
是否有可能通过拖动元素的边缘来定制调整大小?
resize 属性定义得很好!