Div 的高度不及其浮动子元素的总高度

2023-12-13

好吧,我在理解 float 属性的行为方面确实遇到了问题。

该页面宽 750 像素。为了将其保持在屏幕中央,我使用了以下代码:

<div align="center">
    <div align="left" style="width:750px; border-style:double;">
        stuff
    </div>
</div>

主 750 px 宽容器内的元素是具有以下样式的其他容器:

div.infoCont //these containers usualy have two more containers within- for an image and text
{
    width: 740px;
    position: relative;
    left: 2px;
    border-style: double; //for debugging
    float: left;
}
div.textContNI //text only
{
    width: 730px;
    float: left;
    clear: right;
    border-style: double; //for debugging
}

小容器表现正常(它们应该如此,因为它们的位置和大小与我想要的一样大)。但主容器的高度比较小容器的总高度小很多...0 px。它忽略了所有较小容器的高度。

这可以通过在主容器的结束标记之前添加文本来“修复”。我还可以操纵高度<br>标签并且没有文本:高度变得与边框的总高度一样大。 “解决”问题的另一种方法是添加float:left;在样式中,但这将容器放置在窗口的左侧,而我不能这样做。

我错过了一些东西,但我不知道它是什么。

为什么主容器忽略其中容器的总高度?我该如何解决这个错误?


包含浮动元素

这是浮动元素的正确行为。这不是一个错误。

默认情况下,浮动元素不占用其父元素内的空间。对于给定绝对位置的元素也会发生同样的情况。父级有两个子级,但它们都是浮动的,因此没有任何内容占用父级中的空间。因此,父级的高度为零,除非它包含一些其他非浮动内容。

有三种常见方法可以使父级包含其浮动的子级,以便其至少与子级一样高。

1.固定高度

为父级提供一个固定高度,该高度至少与浮动子级的高度一样高。从技术上讲,浮动元素仍然不占据父元素内的空间,但父元素足够高,使其看起来好像占据了空间。

.parent { height: 30px; }
.child  { height: 30px; float: left; }

2.清除div

添加尾随 divclear:both在父级内部。这迫使父级包含浮动的子级。父级会根据需要自动增加高度。默认情况下,空 div 在所有浏览器中的高度均为零,因此尾随 div 不需要额外的样式。

.clear { clear: both; }
...
<div class="parent">
    <!-- Floated children go here -->
    ...
    <!-- Trailing clear div goes here -->
    <div class="clear"></div>
</div>

3. 清除修复

将clearfix规则添加到CSS样式表中,并添加类clearfix给家长。最终结果与添加清晰的 div 相同,但不需要添加额外的 HTML 元素。就像添加一个清晰的 div 一样,这会强制父级包含浮动的子级。父级会根据需要自动增加高度。

/* The traditional version of clearfix, a good one to start with. */
.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
.clearfix {display: inline-block;}
* html .clearfix {height: 1%;}
.clearfix {display: block;}
...
<div class="parent clearfix">
    <!-- Floated children go here -->
    ...
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Div 的高度不及其浮动子元素的总高度 的相关文章

随机推荐

  • 如何防止任务同步继续?

    我有一些库 套接字网络 代码提供了Task based API 用于待处理的请求响应 基于TaskCompletionSource
  • std::mt19937 需要预热吗?

    我读到许多伪随机数生成器需要许多样本才能 预热 使用 std random device 播种 std mt19937 时就是这种情况 还是我们可以期望它在构造后准备就绪 有问题的代码 include
  • 如何在 React Native> 中从一个屏幕导航到另一个屏幕?

    解释 我在 android 中使用 React Native 我从登录屏幕开始 并使用 API 成功调用将参数传递到另一个屏幕 我使用 StackNavigation 来导航屏幕 登录成功后 将转到另一个带有参数的屏幕 Issue API调
  • 尝试确定屏幕是否关闭时检测常亮显示

    我正在尝试找出如何检测 Android 上的显示屏是否关闭 并且我感觉 S10 上的常亮显示屏正在影响我的结果 目前 我正在使用中找到的逻辑这个 stackoverflow 答案 还有对该线程的评论这说明你应该能够使用Display FLA
  • 使用paintComponent()在JFrame中绘制矩形

    我正在尝试创建一个使用 JPanel 的 PaintComponent 绘制形状 下面示例中的矩形 的程序 但我无法让它工作 也无法发现问题所在 代码如下 import javax swing import java awt public
  • 获取子数组键php

    我有一个数组 Array 47 gt Array name gt 3543 good price gt 100 0000 image gt data hp 1 jpg discount gt stock status gt weight c
  • 如何检测设备支持哪些语言字体?

    比如说 我想以本机脚本显示 10 种语言的列表 如果手机不支持该字体 它将回退到英语脚本 有什么方法可以检测特定设备支持哪些字体 换句话说 我只是想检查 punjabi 是否可以显示为 为了安全起见 我会同时使用英文名和本地名 这就是我实际
  • WordPress 自定义帖子类别过滤器

    我试图在我的作品集模板页面中仅显示名为作品集的自定义帖子的某些类别 我可以按 slug 仅显示 1 个类别 但我需要显示 1 个以上类别 并且我想知道是否有办法按 ID 过滤类别 CODE global wp query portfolio
  • 在 SelectField 和 HiddenField 之间动态更改 WTForms 字段类型

    我有一个 WTForms 字段 value currency 我希望它有时是 SelectField 有时是 HiddenField 我对页面使用相同的视图和模板 既创建新项目又编辑现有项目 如果我加载页面来创建新项目 我希望此字段成为 S
  • 如何用Jackson解析一个可能是字符串也可能是数组的json字段

    我有一个 json 字段 当有一个值时它是字符串 theField oneValue 当有多个值时或数组 theField firstValue secondValue 然后我有一个使用 com fasterxml jackson anno
  • 在 64 位 Windows 上设置汇编器 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我真的需要一些帮助 我已经在网上搜索了大约两天 似乎无法找到我遇到的问题的答案 我下载了 nasm 并安装了它 它似乎可以工作 但我似乎找不到任何适用于 Windows 64 位
  • 将非常大的 csv 文件与公共列合并

    例如 我有两个 csv 文件 0 csv 100a a b c c 200a b c c c 300a c d c c 和 1 csv 100a Emma Thomas 200a Alex Jason 400a Sanjay Gupta 5
  • ajax xhr lengthComputable 使用 php 文件返回 false

    我正在使用 XMLHttpRequest 执行 ajax 请求 以显示请求的进度 它对于 html 文件工作得很好 但是 evt lengthComputable 对于 php 文件返回 false 我的 php 文件以 utf 8 编码
  • ML-Engine 预测出现错误,但本地预测工作正常

    我在这里搜索了很多 但不幸的是找不到答案 我在跑步TensorFlow 1 3 在 MacOS 上通过 PiP 安装 在我的本地计算机上 并使用provided ssd mobilenet v1 coco 检查站 我设法在本地和 ML En
  • WhatsApp Business API 未向手机发送 /message 端点或测试消息

    我已经设置了 WhatsApp Business 来测试他们用于发送消息的新 WhatsApp API 我已按照入门指南进行操作 但在尝试发送邮件时遇到了问题测试消息到我的手机 我测试了使用业务设置中的测试消息调用发送消息 如指南中所示 并
  • 一个变量有两种类型

    我需要从 TypeScript 读取一个 JSON 对象 它有一个变量名称prop两种类型中的哪一种Identifier or Expression到 C TypeScript 可以有一个具有多种类型的变量 具有联合类型功能 例如 prop
  • 如何忽略第一个小数点后的第一个值(如果它是 0),否则如果大于 0,则取它?

    我的值如下 decimal val 1 100 现在我想做的是 如果我在第一个小数点值后有 0 那么我只想取 1 1 并忽略其余部分 如果我有 1 11 那么我想取整个 1 11 这就是我的想法 将十进制转换为字符串 按点分割字符串 检查长
  • TOMCAT 6 SSL 错误:别名无法识别密钥条目

    我正在尝试在收到 CA 后配置密钥库 我收到了一份中级 CA 和一份 CA 我已使用此命令导入它们 keytool delete alias tomcat keystore B1i keystore keytool import alias
  • 接口与抽象类[重复]

    这个问题在这里已经有答案了 在C 中 什么时候应该使用接口 什么时候应该使用抽象类 什么可能是决定因素 更新 C 8 0 新功能 从 C 8 0 开始 接口可以定义成员的默认实现 包括属性 在接口中定义属性的默认实现很少见 因为接口可能不定
  • Div 的高度不及其浮动子元素的总高度

    好吧 我在理解 float 属性的行为方面确实遇到了问题 该页面宽 750 像素 为了将其保持在屏幕中央 我使用了以下代码 div align center div align left style width 100 stuff div