【问题标题】:Position div after another element which is in a form将 div 定位在表单中的另一个元素之后
【发布时间】:2012-07-08 01:46:00
【问题描述】:

您好,我想在表单中的文件集之后放置一个 div,但表单有另一个容器元素,并且字段的高度不固定,它会根据其中的内容而变化。 我用 jQuery 做了这个,但它不起作用。哦,我不能将 div 放在表单中,因为该 div 包含另一个表单。

<script>
  $(function(){
  var heightOfform = document.getElementById("form").scrollHeight;
  var heightOffsomethingafter = document.getElementById("somethingafter").scrollHeight;
  document.getElementById("divtoposition").css('top', (heightOfform-heightOffsomethingafter)+'px');
  });
</script>
<style>
#all {position:relative;}
#divtoposition {position:absolute;}
</style>
<div id="all">
<div id="divtoposition"><form></form></div>
<div id="formcontainer">
  <form id="form">
    <fieldset id="afterthis"></fieldset>
    <div id="somethingafter"></div>
  </form>
</div>
</div>

【问题讨论】:

  • 你能不能把#somethingafter放在#form下面,然后把#divtoposition放在#form#somethingafter之间?如果没有,您能解释一下为什么需要这种格式吗?

标签: jquery css position css-position


【解决方案1】:

我认为有一个复杂的答案,但你能解释一下为什么你想要定位的 div 里面有一个表格吗?它有什么作用?可以用另一种方式完成吗?你不能把一个表格放在一个表格里,这样就出来了。您可以将 DivToPosition 的顶部设置为 100px,然后让 jquery 获取字段集的高度。如果字段集的高度为 150px,您可以让 Js 将 150 添加到 100,现在 DivToPosition 的高度为 250px;

 <script>
$(function(){
var divtopositionTop = 100,
fieldsetHeight = $('#afterthis').height();
   $('#divtoposition').css('top', divtopositionTop+fieldsetHeight+'px');
})
</script>

只是一个可以做到的例子。必须在准备好文档时完成,以便设置高度。但是,这可能会导致位置发生快速变化,即元素在应用样式时从一个位置移动到另一个位置。

【讨论】:

  • divtoposition 中的表单是登录框,另一个表单是订单表单,但正如我所说,字段集的高度会随着其中的内容而变化。但实际上我的代码工作只需将 document.getElementById("divtoposition") 更改为 $('#divtoposition') 现在它可以工作,但即使我为 '#somethingafter 设置了边距,div 也超过了 'somethingafter' ' 或者对于 '#form' 我可以将 -Xpx 设置为顶部位置,但我不知道这是否适用于所有分辨率或任何内容高度。
猜你喜欢
  • 1970-01-01
  • 2020-11-22
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多