0

简短的问题:

div::after {content: ""; display: block; height: 100%;}只在什么时候有效div {position: absolute;}

是否也height: 100%指相关 div 标签的高度?

解释:

我试图让一个 div 能够过度滚动一页,即使它到达底部。所以我使用了以下css:

div::after {
    content: "";
    display: block;
    height: 100%;
}
div {
    position: absolute;
    top: 0;
    bottom: 0;
}

为什么 ::after height: 100% 仅在 div 具有绝对定位时有效?

有没有更好的解决方案?因为我不喜欢在不需要的时候添加绝对定位。

更新1:

我使用 Chrome 27

4

1 回答 1

2

height: 100%属性(或任何百分比值)需要一个具有实际定义的元素height才能工作。该高度定义本身可以是一个属性height设置(但不是min那个ormax版本),或者它可以是(如您的情况)position: absolute您还通过设置topandbottom属性定义了高度的 a 。除了使用 javascript 之外,这些是您的两个选项(并且 javascript 只能帮助读取和设置高度div以便::after可以拾取它,因为 javascript 不能::after直接影响伪元素)。

所以::after元素有它div作为它的父元素,这就是为什么需要明确设置的高度,div以便::after伪元素从中获取实际高度。

于 2013-07-09T16:53:02.287 回答