首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的容器div行为

奇怪的容器div行为
EN

Stack Overflow用户
提问于 2014-02-11 19:39:52
回答 3查看 126关注 0票数 0

我问这个是为了学习;这种行为没有任何负面的方面,但我只是想知道这是否会在未来产生任何负面影响。

所以我有一个容器div:content_wrap,它有另外两个div:side_barmain_content。容器div是980px width,用于使用margin-leftmargin-right对其内容进行中心设置。

但是,当我调试页面(在Firefox中)时,我注意到浏览器将div呈现为0x0px,并将父div呈现在屏幕外。然而,它确实正确地定位了孩子的div。有关示例,请参见此JSFiddle:http://jsfiddle.net/7fsXp/7/

我在谷歌上搜索了这个答案,大多数答案都与floats有关,并通过clear:both解决,但我不使用任何浮点数。我确实注意到,如果我将main_content div从position:absolute;更改为position:relative;,则会正确显示content_wrap。或者我可以通过为height设置content_wrap来修复它。

我实际上不需要能够看到content_wrap,所以没有真正的问题,因为它正在以子div为中心来完成它的工作。我只是想知道这样做会不会是个不好的做法?这是一件坏事,还是有关系?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-11 20:05:20

尝试将其他元素添加到这个HTML中,并享受下面的恐怖:D

实际上,在您的代码中有很多事情我是不会做的。首先,当一个元素使用position: absoluteposition: fixed时,它的布局被其他元素“忽略”,换句话说,不能“推”任何元素,这就是为什么容器的高度为0。就好像他们是空想的(我知道,这是最好的解释)。

您应该查看这篇关于定位的文章-- http://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/

事实上,它们就在您期望的位置上,实际上HTML中没有其他元素,absolute元素相对于body定位,fixed元素也是如此(但是position: fixed元素总是这样做的)。查看当我向父div - http://jsfiddle.net/7fsXp/13/添加其他内容时会发生什么情况。

因此,长话短说-你不应该形成你的布局绝对或固定的元素,如果你可以做到没有他们。

票数 1
EN

Stack Overflow用户

发布于 2014-02-11 20:04:41

position: fixedposition: absolute将元素从流中提取出来,因此在所有子div上使用这些位置都将完全折叠父div。

如果您的内容在折叠的div下面,它将在该内容(如 )下上下流动。

您不需要绝对地定位main_content div,但是您需要更改一些东西以使侧边栏和main_content对齐。

演示

由于侧栏是固定的,所以它使用的是文档,而不是容器div作为top的引用,而main_content则使用主体(除非将position: relative添加到容器中)。摆脱身体的默认填充/边距将修复微小的对齐差异。

代码语言:javascript
复制
body {
    padding: 0;
    margin: 0;
}

#main_content {
    //remove position: absolute;
    margin-top:70px; //top: 70px won't work unless you specify position
}
票数 1
EN

Stack Overflow用户

发布于 2014-02-11 20:14:44

这取决于您愿意做什么,但是由于div的默认divposition: static;,所以更改position: relative;将避免父div的崩溃。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21711442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档