【发布时间】:2014-11-08 03:11:35
【问题描述】:
我有一个简单的问题,让我浪费了两天时间,没有任何成功。我是 CSS 初学者,如果我问的问题很愚蠢,请见谅。
JSFiddle
问题
我有一个包含三个主要 div 'header'、'contentContainer' 和 'footer' 的网页。在 contentContainer 中有一个名为“content”的 div。内容 div 应该包含多个部分(我使用 purecss 来表示网格中的每个部分)
一个部分应该包含两个 div 'divA' 和 'divB'。现在 'divA' 应该有动态高度,而 divB 应该有固定高度。这意味着如果我调整浏览器的大小,'divA' 应该与 c 部分一起调整大小。下面的截图直观地展示了我所描述的内容。
现在我不明白的是:
- 为什么 'divB' 不在'section' div 的底部,虽然底部是 0?
-
为什么我不能将“divA”定位在顶部/底部?它不起作用,所以我不得不用 height 属性定位它。
.divA{ position: relative; top: 0; bottom: 100px; ............ }而不是
.divA{ position: relative; height: 85%; ........... }- 为什么 'divB' 会出现在 'section' div 之外?这对我来说没有意义! 'divA' 应该相对于'section' 定位,那么为什么它不尊重父 div 的边界呢?以下屏幕截图显示了我的意思。
Note_1 我在某处读到我可以对两个 div 使用绝对定位而不是相对定位:“divA”和“divB”。但是,对于绝对定位,我将没有“divA”的动态高度
Note_2 我不会在 'divA' 和 'divB' 中包含元素。只是背景颜色或图像。所以基本上我希望“部分” div 填充“内容”区域,尽管它没有具有指定高度的子项。
如果有人向我解释这种行为背后的原因,我将不胜感激。我认为使用 CSS 定位元素是合乎逻辑的,但事实证明它不是 ^^(我肯定错过了一些东西)
更新
感谢@Florian 的回答。我发现你的建议有一个问题。添加后
overflow:hidden;
按照您的建议,对于 contentContainer,“divB”位于“section”div 下。我想要实现的行为是“divB”应该在该部分中保持在相同高度“100px”的相同位置。 'divA' 应该随容器调整大小。 http://jsfiddle.net/oqe3bjxe/
如何解决这个问题?
关于你的答案,
- 好的。
- 读完“3”后我猜是有道理的
- 我不确定孩子是否知道父母的宽度和高度。感谢您的澄清。
- 为什么?使用相对定位有什么问题?
- 为什么?
很抱歉问了很多问题。我真的很想明白。
如果不推荐使用相对位置,那么我想肯定有更好的方法来实现这一点。有人可以向我展示如何使用 JSFiddle 的最佳实践吗?
提前致谢, 特发
【问题讨论】: