css - 奇怪的容器 div 行为

标签 css html

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

所以我有一个容器 div:content_wrap,它还有另外两个 div:side_barmain_content。容器 div 的宽度为 980px,用于使用 margin-leftmargin-right 将其内容居中。

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

我用 Google 搜索了这个,大部分答案都与 floats 有关,并通过使用 clear:both 解决,但我没有使用任何 float 。我确实注意到,如果我将 main_content div 从 position:absolute; 更改为 position:relative;content_wrap 正确显示。或者我可以通过为 content_wrap 设置一个 height 来修复它。

我实际上不需要能够看到 content_wrap,所以这并不是真正的问题,因为它正在以将子 div 居中的方式完成它的工作。我只是想知道这样离开它是否是一种不好的做法?这是一件坏事,还是重要?

最佳答案

尝试向此 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/

长话短说 - 如果可以不用绝对元素或固定元素,则不应使用绝对元素或固定元素来构建布局。

关于css - 奇怪的容器 div 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711442/

相关文章:

javascript - 居中的 div 锁定到位,不能上下移动

css - 样式表中的 Url.Content()?

html - 在加载时将类添加到 div

php - 从 mysql 数据库中检索数据并使用 php 将其插入表中

html - 编辑弹出窗口按钮

javascript - 当用户滚动到 T&C 页面底部时启用复选框?

html - 如何改变SVG图像的颜色

html - 如何在 div 中对齐这两个元素

php - 如何实现辅助文档准备功能?

javascript - 启用基于单选按钮选中的单个或多个复选框