HTML/CSS:将浮动左元素扩展到父元素的剩余宽度

Posted

技术标签:

【中文标题】HTML/CSS:将浮动左元素扩展到父元素的剩余宽度【英文标题】:HTML/CSS: Expanding a float-left element to remaining width of parent 【发布时间】:2011-04-12 10:20:30 【问题描述】:

我这辈子都想不通。我有一个具有特定宽度的容器 div。里面有几个孩子。我希望最后一个 div 扩展其宽度以填充容器中剩余的宽度。我该怎么做?

这是一个例子(也在http://jsfiddle.net/nbKAr/):

#container 
    width:200px;
    border: 1px solid red;

    
#container div 
    float:left;
    border: 1px solid black;
<div id="container">
    <div>a</div>
    <div>b</div>
    <div id="expandMe">expand me</div>
</div>

假设带有“a”和“b”的 div 组合的总宽度为 50 像素。如何在不使用 javascript 的情况下制作 #expandMe 150px?

【问题讨论】:

你知道所有元素都可以在没有包装的情况下放入它们的父元素中吗? 【参考方案1】:

如果您从最后一个项目中删除 float,使用 #expandMe,然后将 overflow:auto; 应用于它,我想您会得到您想要的。

overflow: auto; 在浮动元素之后会导致最后一个元素填充剩余空间。

Here is my sample.

【讨论】:

【参考方案2】:

Larsenal 是对的,这不能用 div 来完成。你可以去老派,用一张桌子,或者更果断一点,定义好宽度。

【讨论】:

【参考方案3】:

没有 Javascript 就无法完成。

您可能会找到一些巧妙的方法来实现视觉效果,但没有可靠的方法可以完全按照您的描述进行。

【讨论】:

以上是关于HTML/CSS:将浮动左元素扩展到父元素的剩余宽度的主要内容,如果未能解决你的问题,请参考以下文章

在CSS中设置块状元素宽100px正确的是

html+css--水平居中总结-不定宽块状元素方法

子元素设置margin-top影响到父级的原因及办法

浮动属性(float)

浮动:让默认(标准)文档流下的元素漂浮起来水平排列

float带来的问题