我通过设置找到了一种使div容器至少占据整个页面高度的方法min-height:100%;
。但是,当我添加一个嵌套div和set时height:100%;
,它不会扩展到容器的高度。有办法解决吗?
html, body {
height: 100%;
margin: 0;
}
#containment {
min-height: 100%;
background: pink;
}
#containment-shadow-left {
height: 100%;
background: aqua;
}
<div id="containment">
<div id="containment-shadow-left">
Hello World!
</div>
</div>
这是一个已报告的Webkit(chrome /safari)错误,具有最小身高的父母的孩子不能继承height属性:
:
显然Firefox也受到了影响(目前无法在IE中进行测试)
可能的解决方法:
当内部元素具有绝对定位时,该错误不会显示。
编辑于2014年4月10日
由于我目前正在从事的项目中 确实 需要带有的父容器min-height
,而子元素继承了容器的高度,因此我进行了更多研究。
第一: 我现在不确定当前浏览器的行为是否确实是一个错误。CSS2.1规范说:
相对于生成的盒子的包含块的高度计算百分比。如果未明确指定包含块的高度(即,它取决于内容的高度),并且该元素的位置不是绝对的,则该值将计算为“自动”。
如果我将最小高度放在容器上,则不会 明确 指定其高度-因此我的元素应该具有auto
高度。而这正是Webkit和其他所有浏览器的作用。
其次,我找到了解决方法:
如果将我的容器元素设置为display:table
,height:inherit
则其行为与我将其设置min-height
为100%时完全相同。而且-更重要的是-如果我将child元素设置为display:table-cell
它,它将完美继承容器元素的高度-无论它是100%还是更高。
完整的CSS:
html, body {
height: 100%;
margin: 0;
}
#container {
background: green;
display: table;
height: inherit;
width: 100%;
}
#content {
background: red;
display: table-cell;
}
标记:
<div id="container">
<div id="content">
<p>content</p>
</div>
</div>
问题内容: 我试图了解什么对我来说似乎是意外的行为: 我在容器内有一个最大高度为100%的元素,该元素也使用最大高度,但是,出乎意料的是,子代溢出了父代: 但是,如果给定父级的显式高度,则此问题已解决: 有谁知道为什么孩子在第一个例子中不尊重父母的最大身高?为什么需要一个明确的高度? 问题答案: 当您指定的百分比上一个孩子,这是父母的实际高度的百分比,而不是父母的,奇怪的。同样适用于。 因此,如果
问题内容: 我在父容器中有两个子元素,如下所示: 我尝试了以下CSS: 我怎样才能让两个孩子()都达到最高的孩子的身高? 问题答案: 一种解决方案是将后代元素的显示值从更改为:
在像这样的简单示例中,子边距不会影响父级高度: JSFiddle:http://jsfiddle.net/k1eegxt3/ 默认情况下,子页边距不会分别影响父级高度和父级尺寸。通常,可以通过在父元素中添加边距可以“推”到的内容来轻松修复,例如,向父元素添加填充或边框 JSFIDLE(JSIDLE):http://jsfiddle.net/fej3qh0z/ 我想知道为什么会这样,而不仅仅是它是如
问题内容: 我有一排2列。在这些列中,我有一个标题,内容和列表。它们具有不同的内容长度。 我要实现的是,该列表在同一行上彼此相邻,而不会破坏引导程序移动优化。 我首先尝试了3个不同的行,但是当列断开时,内容不再属于彼此。没有JavaScript,有没有我需要的解决方案?也许以某种方式使用flexbox? 这是我当前的代码: 问题答案: 为了能够实现这一目标,而无需使用脚本,所有项目(,,,)需要
问题内容: 我正在尝试在Flexbox中填充Flex项目的垂直空间。 不能满足要求的高度,但以下两种情况除外: 的高度为100%(这很奇怪,因为弹性商品默认情况下为100%,而且在Chrome中存在错误) 绝对位置也不方便 目前,该功能不适用于Chrome或Firefox。 问题答案: 采用 与David Storey的答案类似,我的解决方法是: 或者到,你可以使用只是在你想拉长项目。
问题内容: 我有一些容器,他们的孩子只是绝对的/相对的。如何设置容器的高度,以便他们的孩子进入其中? 这是代码: HTML CSS 这是一个jsfiddle。我希望“栏”文本出现在4个正方形之间,而不是在它们后面。 有简单的解决方法吗? 请注意,我不知道这些子项的高度,也无法为容器设置高度:xxx。 问题答案: 如果我了解您要正确执行的操作,那么我认为使用CSS保持孩子的绝对位置是不可能的。 绝对