【发布时间】:2010-09-28 07:59:12
【问题描述】:
有没有办法让<div> 容器通过拖放来调整大小?
【问题讨论】:
标签: html css drag-and-drop resize
有没有办法让<div> 容器通过拖放来调整大小?
【问题讨论】:
标签: html css drag-and-drop resize
最好的方法是使用 CSS3。它至少被 Webkit 和 Gecko 支持。
根据w3c spec:
div.my_class {
resize:both;
overflow:auto; /* something other than visible */
}
Webkit 和 Firefox 对规范的解释方式不同。在 Webkit 中,大小仅限于设置的宽度和高度。还有一个问题:How can I use CSS to make an element resizable to a dimension smaller than the initial one? 关于这个。
【讨论】:
div {
border: 1px solid black;
}
.resizable-content {
min-height: 30px;
min-width: 30px;
resize: both;
overflow: auto;
max-height: fit-content;
max-width: fit-content;
}
<div class="resizable-content">Resize Me!</div>
【讨论】:
CSS3-only 方法的问题是只有 div 的右下角变成可拖动的。在尝试通过从 Stack Overflow 复制 code-sn-ps 来尝试做到这一点之后,我强烈建议在您的项目中使用出色的 InteractJS JavaScript library。它允许您轻松创建一个可调整大小(和可拖动)的 div,该 div 可以从各个方面调整大小。
【讨论】:
如果您需要为 mustberesizeable 数组中的每个标签(也是
window[WIN_RESIZED] = [] // init the window's array
for (var i in tags) {
window[WIN_RESIZED].push(tags[i])
}
在那之后
window.addEventListener('resize', function(e){
for (var i in window[WIN_RESIZED]) {
doOnResize(window[WIN_RESIZED][i])
}
})
必须写在开头的某个地方
const WIN_RESIZED = 'move_resized_divs'
具有任意名称,例如 'move_resized_divs'
【讨论】: