我有以下 HTML 代码:
<div id="my_div" style="height:400px"></div>
<hr>
<input type="text" id="my_input">
my_div稍后将填充数据(通过 jQuery),但问题是
<hr>
出现在my_div后面,但my_input是它应该在的位置(即在my_div之后)。
有谁知道为什么?
编辑:引导 css 类(span10)导致了这个问题。在我删除该课程后,它起作用了。
从您提供的信息来看,我认为这可能取决于您放入其中的内容。正如您在此处看到的那样,<hr>
它应该显示在 div 下方。
我能想到的一种情况是,如果您在 div 中插入使用 CSS 浮动的内容。在这种情况下,div 将“缩小”到它包含的最后一个流入(非浮动)元素的高度,如果其中没有非浮动元素,这将使其缩小到 0 的高度。
如果这是您的情况,那么您可以通过将以下 CSS 添加到您的#my_div
:
#my_div {
overflow: hidden;
}
此类问题还有其他解决方法,但这是最容易尝试的解决方法,以检查这是否是影响您的问题。
另一个可能影响您的问题是 div 的高度限制为 400px。如果 div 的内容超过该高度,它不会将 div 的边界向下推,而是会溢出(快速演示)。如果是这种情况,您可以将 div 设置height
为auto
,以便它与内容一起拉伸,或者您可以通过调整它来确保内容不会超过 div 的高度。
引导 css 类 (span10) 导致了此问题。从my_div中删除它后,它起作用了。
这是因为您的 div 的固定高度为 400px。它可能会被内容溢出,但它不能将其他块移动到超出其指定高度的位置。可能您需要设置它min-height: 400px
而不是height: 400px
.
将两者的位置设置为相对并查看它们是否正确显示
给你的 div 一个position: relative
值
<div id="my_div" style="height:400px; position: relative;"></div>
仅出于测试目的,我会给你的 CSS 一个声明,!important
以排除任何 javascript/bootstrap 覆盖
<div id="my_div" style="height:400px !important; position: relative !important;"></div>
没有内容的 div 显示为 height=0。尝试插入一个
在 div 内,使其最初显示为 400px 的高度。
我认为 jquery 首先删除您的“my_div”,然后附加到您的容器中。试试这个修复
<div id="yourContainer">
<div id="my_div" style="height:400px"></div>
<hr>
</div>
$(document).ready(function() {
$('#yourContainer').find('hr').remove();
$('#yourContainer').append('<hr />');
});