40

有没有办法<div>通过拖放来调整容器的大小?

4

4 回答 4

63

最好的方法是使用 CSS3。它至少受到 Webkit 和 Gecko 的支持。

根据w3c 规范

div.my_class {
    resize:both;
    overflow:auto; /* something other than visible */
}

Webkit 和 Firefox 不会以相同的方式解释规范。在 Webkit 中,大小仅限于设置的宽度和高度。还有另一个问题:如何使用 CSS 使元素的尺寸调整为小于初始尺寸?关于这个。

于 2008-12-24T16:35:56.017 回答
10

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>

于 2018-02-19T15:08:18.210 回答
2

CSS3-only 方法的问题是只有 div 的右下角变成可拖动的。在尝试通过从 Stack Overflow 复制代码片段来尝试做到这一点之后,我强烈建议在您的项目中使用优秀的InteractJS JavaScript 库。它允许您轻松创建一个可调整大小(和可拖动)的 div,该 div 可以从各个方面调整大小。

于 2019-09-07T18:33:26.557 回答
0

如果您需要为mustberesizeable tags数组中的每个标签(也是 <div>)执行一些函数doOnResize(tag),您可以简单地将这个数组复制到window的一个:

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

于 2017-08-17T08:26:25.153 回答