相邻兄弟姐妹的边际崩溃

2023-11-27

我正在阅读有关保证金崩溃的文章,我发现了这一点:margin

相邻兄弟姐妹 相邻兄弟姐妹的边距折叠 (除非后一个兄弟需要清除过去的浮动)。

我不明白最后一句话“除非后一个兄弟需要清除过去的浮动”。有人可以举个例子吗?

谢谢


首先,下面的示例仅适用于基于 Gecko 的浏览器,例如 Windows 或 Android 上的 Firefox。 Chrome/Webkit 长期以来一直错误地实施许可。


我认为该声明是对规范的误解。规范实际上说的是

两个边距相邻当且仅当:

两者都属于参与相同块格式化上下文的流内块级框,并且没有行框、没有间隙、没有填充、没有边框将它们分开

那么是什么原因导致间隙在这里产生影响呢?这不是后一个兄弟的间隙,而是中间元素的间隙。

考虑这个例子。

.container {
  overflow:auto;
  border:2px solid;
}
span {
  float:left;
  width:100px;
  height:100px;
  background:red;
  opacity:0.2;
}
.container > div {
  height:60px;
  margin:20px 0;
  background:blue;
}
b {
  display:block;
  clear:left;
}
<p><strong>View this in Firefox</strong></p>
<div class="container">
  <span></span>
  <div></div>
  <b></b>
  <div></div>
</div>

without clearance

在这里我们可以看到第一个 div 的边距框与浮动一样高。这<b>元素不需要向下移动来清除浮动,因此它没有间隙。它也没有内容、填充、边框或边距,因此第一个 div 的下边距与第二个 div 的上边距折叠在一起。

然而,在这个例子中:

.container {
  overflow:auto;
  border:2px solid;
}
span {
  float:left;
  width:100px;
  height:100px;
  background:red;
  opacity:0.2;
}
.container > div {
  height:59px;
  margin:20px 0;
  background:blue;
}
b {
  display:block;
  clear:left;
}
<p><strong>View this in Firefox</strong></p>
<div class="container">
  <span></span>
  <div></div>
  <b></b>
  <div></div>
</div>

with clearance

第一个 div 的边距框比浮动高度短 1px。所以清楚的<b>元素将其向下移动 - 即它有间隙。现在,即使元素仍然没有内容、内边距、边框或边距并且仅向下移动 1px,第一个 div 的下边距和底部 div 的上边距也无法折叠。


在 Chrome 中,clear:left on the <b>元素会导致边距不折叠,无论它是否有间隙,只有当它需要向下移动超过浮动时才应该有间隙。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相邻兄弟姐妹的边际崩溃 的相关文章

  • 如何垂直对齐div内的图像

    如何在包含的内容中对齐图像div Example 在我的示例中 我需要将 img in the div with class frame div class frame style height 25px img src http jsfi
  • 使用“表单控件”删除输入字段的轮廓

    我有一个输入字段 如下所示 在类名中我将其作为form control
  • Bootstrap 5 是否删除了行之间的间距?

    我开始使用 bootstrap 5 并注意到行之间没有空格 我们是否必须明确使用spacing https getbootstrap com docs 5 0 utilities spacing 实用程序喜欢mb 3 or mb 2等等试图
  • LESS CSS 语法对现代化很有用

    通常我使用现代化 http modernizr com 了解浏览器的功能 同时 我用LESS CSS http lesscss org 使我的CSS更具可读性和可维护性 使用 LESS 嵌套规则的常见样式如下所示 header color
  • CSS使背景图像使用字体字符

    我想使用字体字符 例如来自 font awesome 作为输入元素的背景图像
  • CSS3变换:悬停时翻译,带有过渡[重复]

    这个问题在这里已经有答案了 这应该很简单 我的 HTML 中有一堆锚点 如下所示 a href Link 1 a a href Link 2 a a href Link 3 a a href Link 4 a a href Link 5 a
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 如何将大于整个页面 100% 的元素居中对齐?

    我有一个宽度为 100 的 div 并且隐藏了一个宽度为 3000px 的 div 我希望3000px的div左右均匀地被切断 我会使用背景位置 中心 然而 事情比这更复杂 3000px div 包含 30 100px div 我尝试过在
  • 如何覆盖 bootstrap 表 td 样式?

    我正在使用 Bootstrap 3 3我有一个 HTML 代码如下 div table class table table striped tr td 03 td td 04 td td 05 td td 06 td td 07 td td
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • 引导标签输入宽度

    我正在尝试使用引导程序标签输入 http timschlechter github io bootstrap tagsinput examples 以模态中包含的形式 像这样 div class form group div
  • 使 Material UI Grid 项目的子项拉伸以适合父容器的剩余高度

    1 现状 我有一个包含 4 个网格项的 Material UI 网格容器 每个 Grid 项中都有一个 Typography 组件 其中包含标题和包含一些内容的 Card 如下所示 2 期望的外观 我希望卡片填充网格项目的剩余高度并且不超过
  • 将输入中每个单词的第一个字符设为大写

    我想知道如何在输入区域自动生成单词的第一个字符 目前我的代码是 Name
  • 设置浏览器窗口最小化的最小尺寸限制?

    有没有办法在所有浏览器中手动设置浏览器窗口的最小尺寸 你可以试试 body min width 600px 一旦视口小于 600 像素 您将得到一个水平滚动条 这仅适用于支持 min width CSS 属性的现代浏览器 我认为不可能限制用
  • 增加数字输入、CSS、HTML 上的向下和向上箭头的大小

    有没有办法利用CSS来增大数字输入框右侧的上下箭头的大小 只是向上和向下箭头 而不是整个输入框 或者至少是按比例的 看这个例子 size 36 font size 36px size 12 font size 12px
  • 使用deployJava.runApplet来定位特定元素

    经过多年成功维护一个使用旧有的小程序 嵌入Java小程序的方法 我们无法捂住耳朵唱 啦啦啦 不再了 是时候使用 deployJava runApplet 当我使用点击处理程序触发此方法时 此处通过 jQuery 在按钮上使用事件侦听器 但这
  • 如何为背景图像添加边距?

    我想向背景图像添加边距 以便将其与屏幕中间保持距离 但将其添加到该类中会为整个主体添加边距 body poppage background url Imagenes tip3 png 50 200px no repeat E2E4E9 我怎
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • 覆盖并重置 CSS 样式:auto 或 none 不起作用

    我想覆盖为所有表定义的以下 CSS 样式 table font size 12px width 100 min width 400px display inline table 我有一个特定的表 其类名为 other 最后的餐桌装饰应该是这
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t

随机推荐

  • LoadString 仅在我没有英文字符串表时才有效

    我希望能够以编程方式修改应用程序的语言 或者至少使用 控制面板 gt 区域和语言选项 gt 格式 中指定的语言 如果我添加一个英语字符串表 为其制作一个法语和德语副本 然后删除英语字符串表 我可以以编程方式在加载法语和德语字符串之间切换 如
  • JavaScript 中的大数字字符串

    当我执行以下操作时 alert 2053716830872415770228778006271971120334843128349550587141047275840274143041 toString 我得到 2 053716830872
  • Google App脚本从网站提取数据

    所以我正在写一个脚本来查看在 Google 信息页上完成审核并更新谷歌电子表格 我发现html中保存这个值的行是 span class A7a 103 span 我只需要知道 URL 和 html 代码就可以从页面中提取内容 Use var
  • 如何包含 MVC 部分控件中的 css 文件?

    我正在使用 ASP NET MVC 并且有一个需要包含特定 CSS 和 JS 文件的部分控件 有没有办法让父页面渲染script and link页面 head 部分中的标签 而不是仅仅在部分控件中内联渲染它们 为了澄清我想要包含文件的控件
  • 类型暗示返回 self 的类方法的返回值?

    正如问题所描述的 我想输入提示aself返回 类似 class A def foo self gt what goes here do something return self 我已经尝试过的事情 将其注释为A 添加from future
  • 如何更改内核 I/O 缓冲区大小

    我正在对 I O 密集型应用程序进行一些实验 并试图了解改变内核 I O 缓冲区大小 不同电梯算法等的影响 如何知道内核中 i o 缓冲区的当前大小 内核是否根据需要使用多个缓冲区 我怎样才能改变这个缓冲区的大小 是否有一个配置文件存储此信
  • Oracle 10g 中通过数据库链接的传输是否经过压缩?是否可以?

    我正在通过数据库链接将数据从一个基地传输到另一个基地 使用INSERT INTO SELECT 我想知道通过链接传输的数据是否经过压缩或者可以压缩以避免过多的网络使用 我的带宽非常少 我认为如果还没有完成的话会有所帮助 有一些重复数据删除但
  • 每行带有 ^M 的文本文件

    我刚刚从朋友那里得到了一个源代码文件 该文件是在 UNIX 中创建的 当我使用 NotePad 在 Windows 中打开它时 每一行都有一个额外的空行 带着疑惑 我下载了 Vim 并用它打开了该文件 然后我在每行末尾看到一堆 M 这是什么
  • TFS 2010:如何将工作项链接到变更集

    我想以编程方式将工作项链接到变更集 目前 我已经从我的 C 代码创建工作项并将它们保存到 TFS 代码如下 WorkItem item new WorkItem project WorkItemTypes CustomItem item F
  • 使用system()执行命令时如何设置环境变量?

    我正在 Linux 上编写 C 程序 需要执行命令system 并且在执行该命令时需要设置环境变量 但我不知道在使用时如何设置环境变量system 如果要将与父进程不同的环境变量传递给子进程 可以使用以下组合getenv and seten
  • 获取所有程序的、用户定义的函数

    如何通过以下方式获取所有用户定义函数的列表SQL query 我找到这段代码here SELECT p proname p pronargs t typname FROM pg proc p pg language l pg type t
  • 在 iPad 上使用 Swift UI 禁用分割视图

    有没有办法在 iPad 上的导航视图中使用 SwiftUI 禁用 SplitView 通过设置NavigationViewStyle import SwiftUI struct NavView View var body some View
  • 使用标记模板文字传递更多参数

    我正在与样式组件并使用其标记模板文字语法生成组件 例如 const Button styled button background color papayawhip border radius 3px color palevioletred
  • 遍历 DOM 树

    由于大多数 全部 执行 HTML 清理的 PHP 库 例如 HTML Purifier 严重依赖于正则表达式 因此我认为尝试编写一个使用 DOMDocument 和相关类的 HTML 清理程序将是一个值得尝试的实验 虽然我还处于这个项目的早
  • 使用 GCDAsyncSocket 通过套接字进行 Telnet

    我正在尝试从目标 c 通过 telnet 连接到 Cisco C40 编解码器 在我的计算机上使用终端时 我得到 密码 然而 在进行套接字连接时 需要进行 telnet 协商 我就是这样 但由于某种原因我无法到达上面的 密码 提示 void
  • MySQL会自动优化子查询吗?

    我想运行以下查询 Main Query SELECT COUNT FROM table name WHERE device id IN SELECT DISTINCT device id FROM table name WHERE NAME
  • 覆盖默认的 Android 主题

    我已经能够覆盖任何名称前面带有 android 的主题 但 Android theme xml 还定义了似乎无法覆盖的属性 例如
  • 成员名称不能与分部类的封闭类型相同

    我定义了一个具有如下属性的分部类 public partial class Item public string this string key get if Fields null return null if Fields Contai
  • 在 sagemaker 中进行预测之前如何预处理输入数据?

    我正在使用 java Sagemaker SDK 调用 Sagemaker 端点 我发送的数据在模型可以使用它进行预测之前几乎不需要清理 我怎样才能在 Sagemaker 中做到这一点 我在 Jupyter 笔记本实例中有一个预处理功能 它
  • 相邻兄弟姐妹的边际崩溃

    我正在阅读有关保证金崩溃的文章 我发现了这一点 margin 相邻兄弟姐妹 相邻兄弟姐妹的边距折叠 除非后一个兄弟需要清除过去的浮动 我不明白最后一句话 除非后一个兄弟需要清除过去的浮动 有人可以举个例子吗 谢谢 首先 下面的示例仅适用于基