Javascript 在webapp中按比例调整div的大小

Javascript 在webapp中按比例调整div的大小,javascript,html,css,frontend,Javascript,Html,Css,Frontend,我正在尝试创建一个可以调整大小的webapp(就像我们在操作系统中调整窗口大小一样),我知道我可以使用绝对位置和resize-twitter属性轻松实现这一点,但我希望它能够按比例调整大小,并有一个最大限制,我尝试并用谷歌搜索了这个问题,但没有“精确”的答案,谢谢你的帮助:p 不知道这是否正是您想要的答案,但您可以使用最小高度、最大高度和相同的宽度,还可以使用%和vw来保持比率: HTML: <div id="wrapper"> <div class="box">

我正在尝试创建一个可以调整大小的webapp(就像我们在操作系统中调整窗口大小一样),我知道我可以使用绝对位置和resize-twitter属性轻松实现这一点,但我希望它能够按比例调整大小,并有一个最大限制,我尝试并用谷歌搜索了这个问题,但没有“精确”的答案,谢谢你的帮助:p

不知道这是否正是您想要的答案,但您可以使用最小高度、最大高度和相同的宽度,还可以使用%和vw来保持比率:

HTML:

<div id="wrapper">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
</div>
body{
    width: 100%;
    height: 100%;   
    margin 0;
    padding 0;
}

#wrapper{
    width: 100vw;
    height: 100vh;
    background-color: #ccc;
}

.box {
    width:20%;
    height:20vw;
    min-width:100px;
    min-height: 100px;
    max-width: 200px;
    max-height: 200px;
    margin:1%;
    background:DodgerBlue ;
    float:left;
}
<div id="re_size_me">text in div</div>
#re_size_me{
    border: 2px solid;
    padding: 20px; 
    width: 100px;
    height: 100px;
    overflow: auto;
}
  $(function() {
    $( "#re_size_me" ).resizable({
      aspectRatio: 1 / 1,
       maxHeight: 300,
      maxWidth: 300,
      minHeight: 50,
      minWidth: 50
    });
  });

好的,我想我现在可能明白你的意思了,你可以使用jQuery UI而不是CSS:

HTML:

<div id="wrapper">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
</div>
body{
    width: 100%;
    height: 100%;   
    margin 0;
    padding 0;
}

#wrapper{
    width: 100vw;
    height: 100vh;
    background-color: #ccc;
}

.box {
    width:20%;
    height:20vw;
    min-width:100px;
    min-height: 100px;
    max-width: 200px;
    max-height: 200px;
    margin:1%;
    background:DodgerBlue ;
    float:left;
}
<div id="re_size_me">text in div</div>
#re_size_me{
    border: 2px solid;
    padding: 20px; 
    width: 100px;
    height: 100px;
    overflow: auto;
}
  $(function() {
    $( "#re_size_me" ).resizable({
      aspectRatio: 1 / 1,
       maxHeight: 300,
      maxWidth: 300,
      minHeight: 50,
      minWidth: 50
    });
  });
Javascript/jQuery:

<div id="wrapper">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
</div>
body{
    width: 100%;
    height: 100%;   
    margin 0;
    padding 0;
}

#wrapper{
    width: 100vw;
    height: 100vh;
    background-color: #ccc;
}

.box {
    width:20%;
    height:20vw;
    min-width:100px;
    min-height: 100px;
    max-width: 200px;
    max-height: 200px;
    margin:1%;
    background:DodgerBlue ;
    float:left;
}
<div id="re_size_me">text in div</div>
#re_size_me{
    border: 2px solid;
    padding: 20px; 
    width: 100px;
    height: 100px;
    overflow: auto;
}
  $(function() {
    $( "#re_size_me" ).resizable({
      aspectRatio: 1 / 1,
       maxHeight: 300,
      maxWidth: 300,
      minHeight: 50,
      minWidth: 50
    });
  });

您可以在此处阅读更多内容: