我有一个设置,我有一个绝对div设置为左侧位置和右侧位置以允许液体布局。这一切都很好地工作,但后来我遇到了一个问题,我有一个div下面有一些副本。问题是,副本的div应该低于绝对定位div。现在它出现在它上面,这是不正确的。div高于绝对div和溢出
我经常看到这个问题,因为在孩子被设置为绝对后折叠父母的div,但为了解决这个问题,我使用清除所有或溢出:父母隐藏,它停止发生崩溃。这一次围绕它的不崩溃,但它显示我的底部股利高于顶部股利。
这里是一个jsfiddle链接向您展示我的代码。
我有一个设置,我有一个绝对div设置为左侧位置和右侧位置以允许液体布局。这一切都很好地工作,但后来我遇到了一个问题,我有一个div下面有一些副本。问题是,副本的div应该低于绝对定位div。现在它出现在它上面,这是不正确的。div高于绝对div和溢出
我经常看到这个问题,因为在孩子被设置为绝对后折叠父母的div,但为了解决这个问题,我使用清除所有或溢出:父母隐藏,它停止发生崩溃。这一次围绕它的不崩溃,但它显示我的底部股利高于顶部股利。
这里是一个jsfiddle链接向您展示我的代码。
我不知道为什么你认为这会奏效。你有容器footer
。这包含两个子div-footerWrapper
和footerTerms
。
FooterWrapper绝对定位。所以它被排除在所有其他元素的流动之外。 footerTerms是footerWrapper的兄弟,自然地从其父,页脚的左上角开始。
为什么footerWrapper绝对定位好像你想让它影响你的页面内容流?使其相对或保持静态。
http://jsfiddle.net/mrtsherman/7cNf7/3/
<div class="footer">
<div class="footerWrapper">
</div>
<div class="footerTerms">
</div>
</div>
footerTerms不是FooterWrapper的兄弟。它在FooterWrapper之外。 FooterWrapper是绝对位置,所以我可以在其上设置一个左侧位置,并在其上有一个正确的位置。现在左侧设置为0,但这会改变。 – Chapsterj
我想你有一个关于相对定位的问题,我总是可以设置相对div的左右位置。 – Chapsterj
再次查看您的代码。 footerTerms确实是兄弟姐妹。我更新了我的答案,删除了中间的所有内容,以便您可以看到。 – mrtsherman
我有probabaly错误理解你想做的事,但如果你想要一个液态布局为什么不使用这样的事情:
CSS:
<style type="text/css">
#footerWrapper {
background: #ccc;
}
#footerWrapper .section {
float: left;
width: 33%;
}
.clear:after {
content: " ";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
html[xmlns] .clear {
display: block;
}
* html .clear {
height: 1%;
}
</style>
HTML:
<div id="footerWrapper">
<div class="clear">
<div class="section">
Footer section 1<br />
Footer section 1<br />
Footer section 1
</div>
<div class="section">
Footer section 2<br />
Footer section 2<br />
Footer section 2<br />
Footer section 2
</div>
<div class="section">
Footer section 3<br />
Footer section 3<br />
Footer section 3
</div>
</div>
<div class="terms">
Terms
</div>
</div>
然后,如果您想将页脚挂到页面的右侧,例如您可以编辑#footerWrapper CSS并给它一个宽度和浮点数。
谢谢酸柠檬,我不知道我得到这如何与我的结构相关。所以部分与dl元素相同,除了您选择使用div?那么你从哪里取得33%的数字?你说浮动所有部分左边位,然后你说如果需要将它钉在右边。我不能给footerwarpper一个宽度,因为它的liwuid基于我没有像素宽度。当左侧必须是左侧的指定数量的像素时,如何浮动左侧帮助,还必须跨越右侧浏览器的宽度,并在缩放浏览器时正确更新。 – Chapsterj
是的,我选择使用divs代替dls,而33%是从做一些简单的数学,100/3,然后将结果四舍五入到33,这意味着无论footerWrapper有多宽,它们都会占用一个均匀空间量。如果将footerWrapper固定为宽度并向右浮动不合理,则忽略该评论。我只是认为这是你看完你的代码和结果页面后想要做的。重点是我上面的代码是一个页脚,它可以跨越浏览器宽度,其中3个部分占用甚至空间,其他文本下面有一个div。 –
感谢酸柠檬解释您的设置。你的设置确实有效,但它不能解决问题,因为它能够在左侧设置指定的位置,然后将其固定在右侧。使用绝对定位可以实现这一点。但是因为它将它从其他元素的自然流动中解脱出来,所以我现在没有办法让它下面的元素知道它下面的位置应该在哪里。它很自然地想要在之前被设置为绝对的footerWrapper前面的对象位置。主要问题是如何解决这个问题来定位footerTerms。 – Chapsterj
在你的小提琴中,你有一些不匹配的标签。你能回去纠正吗?这可能是你的问题的原因。注意底部的红色div。整洁按钮也应该对你有所帮助。 – mrtsherman
这是一个缺少标签,但这不是问题。对于那个很抱歉。仍然有其他问题。 – Chapsterj
'clear'用于清除浮动,而不是绝对定位的元素。 –