用于“填充父级”的CSS?

时间:2011-03-16 19:46:37

标签: css

我在DOM上有一个项目,我只想填写其父级的宽度,无论它是什么:

<div width="800">
    <div class="filler"></div>
</div>

如何在CSS中指定filler类与其父级的宽度匹配?

.filler {
    ?
}

6 个答案:

答案 0 :(得分:35)

根据您的内部项目,有各种方法。

如果它是块级元素(段落,div等),它将自动调整自身以填充容器宽度的100%。

如果它是一个内联元素,对你来说太糟糕了,在将它转换为块级元素之前,它将不会接受width:100%:{/ 1}}。

浮动元素是一种特殊情况:它们只会跨越内部内容的宽度,即使它们是块级元素。他们需要display:block

绝对定位的元素甚至更难:它们需要width:100%,但容器也需要定位上下文,例如。 width:100%

所有四种情况的例子:http://jsfiddle.net/dD7E4/

答案 1 :(得分:26)

您是否尝试过:width: 100%;

答案 2 :(得分:1)

div是一个块元素,默认填充其父元素 如果不是,您可能使用float:leftfloat:rightdisplay:inline,或者您的父母不是800px。
(也许你应该尝试style="width:800px"width="800px"而不是width="800"
我通常会设置一个彩色边框来看它是如何工作的。

答案 3 :(得分:1)

除非阻止它们,否则divp等块级元素将始终填充其容器的整个宽度。如果您有一个内联元素,例如spana,则可以将其设置为display: block,以将其转换为块级元素,但这也会产生换行符之前和之后。

答案 4 :(得分:0)

如果内部元素不是 div 并且有内边距或边距,flexbox 可能是最好的解决方案:

<div class="container">
    <div class="filler"></div>
</div>
.container {
    display: flex;
}
.filler {
    flex-grow: 1;
}

另见this answer about how to fill remaining vertical space

答案 5 :(得分:0)

默认情况下,它会填充其父元素的宽度,因为 div 是一个块元素。