php - 使用包含的 div 高度缩放容器 div

标签 php html css

我正在尝试获取驻留在容器 div 中的 div,以便在容器内的 div 变高时缩放容器 div 的高度。当容器内的 div 高度高于容器本身时,它刚好移过容器底部。我希望容器随包含的 div 缩放。我如何在 CSS 中执行此操作?

最佳答案

格雷厄姆。您所描述的是 DIV 或与此相关的任何 block 元素的默认行为。例如对于以下 HTML:

<style type="text/css">
    dl { margin: 0; padding: 0;}

    #container {
        background-color: blue;
        padding: 5px 5px 5px 5px;
    }   

    #inner {
        background-color: red;
    }   
</style>
<div id="container">
    <div id="inner">
        <dl>
            <dt>Stuff</dt>
            <dd>Blah blah blah</dd>
            <dt>Foobar</dt>
            <dd>Bazquux</dd>
        </dl>
    </div>
</div>

您将获得以下呈现的 HTML:

Basic Div
(来源:rackspacecloud.com)

您描述的容器 div 未展开以包含内部 div 的情况发生在您 float 内部 div 时。根据定义, float 将 block 元素从其包含元素的约束中分离出来。应用“ float :左;”您的#inner 元素提供以下内容:

alt text
(来源:rackspacecloud.com)

解决方案是在包含的 div 的底部添加一个清除 float 元素的 block 级元素。这会导致包含的 div 环绕这个新的 block 级元素,因此也会环绕您的 float 元素。

例如

<style type="text/css">
    dl { margin: 0; padding: 0;}

    #container {
        background-color: blue;
        padding: 5px 5px 5px 5px;
    }   

    #inner {
        background-color: red;
        float: left;
    }   
</style>
<div id="container">
    <div id="inner">
        <dl>
            <dt>Stuff</dt>
            <dd>Blah blah blah</dd>
            <dt>Foobar</dt>
            <dd>Bazquux</dd>
        </dl>
    </div>
    <div style="clear: both;"></div>
</div>

这将给出与第一张图像相同的输出。

显然,如果您进行了大量 float 操作,将这添加到容器 div 的底部可能会很乏味。

使用 CSS2,您可以通过简单的类定义(当然还有针对 IE 的 hack)来做到这一点:

<style type="text/css">
    dl { margin: 0; padding: 0;}

    #container {
        background-color: blue;
        padding: 5px 5px 5px 5px;
    }

    .clearfix:after {
        content: ".";
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
    }

    * html .clearfix {height: 1%;}

    #inner {
        background-color: red;
        float: left;
    }
</style>
<div id="container" class="clearfix">
    <div id="inner">
        <dl>
            <dt>Stuff</dt>
            <dd>Blah blah blah</dd>
            <dt>Foobar</dt>
            <dd>Bazquux</dd>
        </dl>
    </div>
</div>

只需将 clearfix 类添加到任何包含 float 元素的容器 div。请注意,“* html”是 IE 所需的 hack。

关于php - 使用包含的 div 高度缩放容器 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240616/

相关文章:

css - 立场:在 Safari 中绝对表现不同

php - MySQLi 从表中选择主题标签

html - css 中的比例重叠

javascript - 如何使用 JavaScript 滚动事件更改 HTML 输入

html - 我的 li 在大屏幕上向左浮动,但是当它在超小屏幕上时,li 会向下移动。我怎样才能把我的 li float 也放在较小的屏幕上?

css - 删除 Material 对话框上的怪异边框

php - MySQL输入TINYINT语法

php - TYPO3.CMS 9 LTS - 可缓存 extbase 操作,但新路由没有 cHash

javascript - Bootstrap Modal 无法刷新数据

html - 未知的额外 margin