新BFC“清”浮箱

2024-05-15

如示例所示,应用display: inline-block;到包含块似乎“清除”了其中的浮动框。

.wrapper-inline-block {
  display: inline-block;
}
.left-column {
  background-color: teal;
  float: left;
}
<div class="wrapper-inline-block">
  <div class="left-column">
    <p>Float</p>
  </div>
  <p>Non-float</p>
</div>

<hr>

<div class="wrapper">
  <div class="left-column">
    <p>Float</p>
  </div>
  <p>Non-float</p>
</div>

我不知道这是怎么发生的。我所知道的就是display: inline-block;创建一个新的块格式化上下文。

我的问题是:新的BFC如何“清除”其中的浮动框?


跟进问题:

奇怪的是,当我改变时<p>Non-float</p> to Non-float,“清除”效果消失。如果有人可以向我解释背后的原因,那就太好了。

.wrapper-inline-block {
  display: inline-block;
}
.left-column {
  background-color: teal;
  float: left;
}
<div class="wrapper-inline-block">
  <div class="left-column">
    <p>Float</p>
  </div>
  Non-float
</div>

<hr>

<div class="wrapper">
  <div class="left-column">
    <p>Float</p>
  </div>
  Non-float
</div>

那是因为默认的内联块width: auto尺寸根据缩小以适合 https://www.w3.org/TR/CSS21/visudet.html#shrink-to-fit-float算法。 CSS2.1 没有完全定义该算法应如何处理浮动内容,但浏览器似乎是这样做的:

  1. 内联块的大小忽略浮动
  2. 内联块内的行框与内联块一样宽
  3. 浮动缩小了线框
  4. 因此,非浮动内容不再适合缩小的空间,因此换行到下一行。

请注意,没有清除,如果您使内联块足够宽,文本将出现在浮动旁边。

.wrapper.inline-block {
  display: inline-block;
}
.w400 {
  width: 400px;
}
.wrapper {
  border: 1px solid;
}
.left-column {
  background-color: teal;
  float: left;
}
<p>Shrink-to-fit inline-block:</p>
<div class="wrapper inline-block">
  <div class="left-column">
    <p>Float</p>
  </div>
  <p>Non-float</p>
</div>
<p>Explicit width inline-block:</p>
<div class="wrapper inline-blockw w400">
  <div class="left-column">
    <p>Float</p>
  </div>
  <p>Non-float</p>
</div>
<p>Fill-available block:</p>
<div class="wrapper">
  <div class="left-column">
    <p>Float</p>
  </div>
  <p>Non-float</p>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

新BFC“清”浮箱 的相关文章

  • 如何访问 javascript 文件中的查询字符串

    可能的重复 如何获取查询字符串值 https stackoverflow com questions 901115 how can i get query string values 可以说 我们有一个
  • 如何更改谷歌图表标题字体大小?

    如何更改谷歌图表中标题的字体大小 var options title My Daily Activities backgroundColor transparent is3D true 在这样的选项中使用 titleTextStyle va
  • 如何使用CSS缩进多级select optgroup?

    只是试图通过嵌套深度缩进 optgroup 块 我尝试了一般margin left规则 嵌套元素然后尝试应用相同的规则 尝试过padding left 这样的缩进可能吗 看起来很简单 P 在下面的示例中 标记为 client2 a 的 op
  • 将 Regex 对象分配给 html 输入模式

    我需要以编程方式将正则表达式对象分配给输入元素模式属性 以下是我当前的实现 var regex d 5 element attr pattern regex toString slice 1 1 有没有更好的方法来做到这一点而不需要字符串操
  • 如何使用多个 select2 框过滤表格?

    我正在尝试使用 和多个 select2 框的类来过滤表格 表格 HTML table class table tbody tr class kanban event Austin td td tr tr class csm event Ch
  • 多行有多个提交按钮,我应该为每个按钮制作一个表单吗?

    我列出了大约 20 行 每行代表一个订单 每行需要有 3 个按钮 每个按钮单击将执行不同的操作 我有 3 个操作来处 理每个按钮发布请求 我只是不确定如何为每个按钮设置 Html 表单 tr td td tr
  • BeautifulSoup4:选择属性不等于x的元素

    我想做这样的事情 soup find all td attrs class foo 我想找到所有不具有 foo 类的 td 显然上面的方法不起作用 那怎么办呢 BeautifulSoup确实使 汤 变得美丽且易于使用 You 可以传递一个函
  • 如何在 CSS 中将 RadioButton 图标样式设置为无(在 Flex 3 中)?

    您可以通过在 CSS 中设置以下值来在 Flex 中设置 RadioButton 的外观 upSkin Embed overSkin Embed ownSkin Embed disabledSkin Embed selectedUpSkin
  • Webkit 是否有 CSS3 网格布局的有效实现?

    CSS 网格布局 编辑草案 2011 年 11 月 21 日 http dev w3 org csswg css3 grid align 我正在制作一个原型 该原型将在选定的设备和浏览器上向客户展示 目前我并不担心跨浏览器兼容性 IE10开
  • CSS 属性选择器类以以下开头但不等于

    我想将 css 应用于以 abcd 开头的所有类 但我不想将该 css 应用于名称为 abcd dontapply 的类 我可以这样做吗 我尝试过的 a class abcd not class abcd dontapply define
  • 使用 jQuery inputmask 插件范围 0-100

    如何创建 0 到 100 范围内的掩码 document ready function masked inputmask 您可以使用jquery inputmask regex extensions js为了那个原因 你可以找到带有所有扩展
  • Bootstrap 4 Beta 0 网格系统上的 Rowspan

    您好 我正在开发一个使用 Bootstrap 4 Beta 的电子商务模板 我让它在移动设备上工作 但在桌面设备上我不知道如何让购买按钮保持在标题下 在我的方法中 它出现在 图库 部分下 Desired Desktop Desired Mo
  • Twitter Typeahead 上使用 Bootstrap 3 的 CSS 问题

    随着 Bootstrap 3 的发布 Typeahead 已被删除 取而代之的是 https github com twitter typeahead js https github com twitter typeahead js 我已经
  • 如何在 Rails 5 中设置资产管道以使用自定义字体?

    我必须使用自定义字体贾米尔 努里 纳斯塔莱克 http www urdujahan com urdu fonts Jameel 20Noori 20Nastaleeq zip在 Rails 5 应用程序中 我以前从未使用过 Rails 中的
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • 从链接打开本地文件夹

    如何通过单击任何链接打开本地文件夹视图 我尝试了很多选择 例如 a href Open folder a or a Open folder a or a Open folder a 解决方案 启动可下载链接 以下内容适用于所有浏览器 但一如
  • HTML5 文件 API 和 AJAX 上传分块问题

    我编写了一个带有单独进度的拖放多个文件上传等 除了一件事之外 它工作得非常好 上传较大文件时 有时浏览器会锁定 直到上传完成 我认为这是因为该文件存储在浏览器的内存中并占用了浏览器可用的所有资源 我想知道 是否可以逐段读取文件并在读取时通过
  • Svelte 条件元素类报告为语法错误

    我正在做一个if块每if 块的精简指南 https svelte technology guide if blocks 这看起来很简单 但 Svelte 认为这是一个语法错误 svelte plugin ParseError Unexpec
  • 为什么我的 Web 组件 CSS 不显示?我没有使用shadowDOM

    我有一个没有使用 ShadowDOM 的 Native V1 组件 所以我将 CSS 放在 但是当其他人使用我的组件时 我的 CSS 就不再起作用了 仅当其组件确实使用 ShadowDOM 时才会发生这种情况 我的组件的示例代码 class

随机推荐

  • Perl 是否有相当于 Python 的 `if __name__ == '__main__'` 的功能?

    有没有一种方法可以确定当前文件是否是 Perl 源中正在执行的文件 在 Python 中 我们使用以下结构来做到这一点 if name main This file is being executed raise NotImplemente
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • Visual Studio 2010 可扩展性、MPF 和语言服务

    我正在尝试扩展 Visual Studio 2010 RC 以能够使用自定义编程语言 我尝试做的前两件事是语法突出显示 智能感知功能 很容易完成 感谢 PDC09 中的 Ook 示例 和创建新项目模板的可能性 即能够打开 myproj 文件
  • 使用多级解决方案计算二维网格中的最近邻

    我有一个问题 在 x y 大小的网格中 我提供了一个点 并且我需要找到最近的邻居 在实践中 我试图在 pygame 中找到距离光标最近的点 该点跨越颜色距离阈值 计算如下 sqrt rgb1 0 rgb2 0 2 rgb1 1 rgb2 1
  • JavaScript 原型 - 请澄清

    有人可以帮我理解原型属性吗 我不明白原型属性是函数的属性还是函数内部的属性 假设我们创建以下构造函数 Food 此时 函数 Food 具有 Food prototype 属性 由于 Food 是 Object 的实例 因此这意味着 Obec
  • 如何在之前的 Facebook 身份验证后自动安全地让用户登录?

    用户抱怨他们必须过于频繁地登录 如果身份验证完全基于 Facebook OAuth 那么用户如何在下次访问该页面时自动登录 用户流程示例 用户点击 使用 Facebook 登录 用户通过 Facebook 进行身份验证并被重定向回网站 用户
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • 如何配置 IIS 以接受 POST 请求?

    我知道默认情况下 IIS 不接受发布请求 如何更改此设置 有人可以引导我改变这个 一步一步 吗 如果您使用的是 IIS 6 及更低版本 在 IIS 管理屏幕中右键单击您的网站或虚拟目录 去Properties然后去Home Director
  • 在 TypeScript 中实现类型安全的服务注册表

    我想要一个函数根据给定的标识符 例如字符串或符号 返回对象实例 在代码中它可能看起来像这样 define your services type ServiceA foo gt string const ServiceA foo gt bar
  • 将不同的 grViz 组合成一个图

    我想结合不同的DiagrammeR绘制成一个图形 生成的图如下例所示 library DiagrammeR pDia lt grViz digraph boxes and circles a graph statement graph ov
  • 使用 jQuery 检测容器溢出?

    我见过这个问题 https stackoverflow com questions 2059743 detect elements overflow using jquery但感觉必须有一个 更干净 的 jQuery 方法来做到这一点 我什
  • 如何使用 kubectl 了解有关先前发布版本的更多详细信息?

    有给出的命令here https kubernetes io docs reference kubectl cheatsheet updating resources其中解释了如何使用执行回滚kubectl 列出以前的部署版本的是 kube
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • 如何在 Mac 上设置默认 shell,例如钓鱼? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我不喜欢重新输入fish每次我启动终端时 我想Fish https en wikipedia org wiki Fish Unix she
  • Akka :: 调度程序 [%name%] 未配置,使用默认调度程序

    我创建了以下 application conf akka actor prio dispatcher type Dispatcher mailbox type my package PrioritizedMailbox 当转储配置时 act
  • 数据表“footerCallback”函数未在页脚中显示结果

    我尝试获取每列的总和并将结果显示在页脚中 我在用着 页脚回调 https datatables net reference option footerCallbackDatatables提供的功能 但是它在页脚中没有显示任何内容 数据表解释
  • 模板中的 bson.ObjectId

    我有一个具有 bson ObjectId 类型的结构 例如如下所示 type Test struct Id bson ObjectId Name string Foo string 我想在 html 模板中呈现它 Name Food a h
  • 当 deps 为 [] 时,React 警告 React Hook useEffect 缺少依赖项

    我正在尝试清理 DOM 中的警告 并且对于每个useEffect部门在哪里 我收到一条错误消息 指出 useEffect 缺少依赖项 我想在安装组件时触发效果 我的印象是这就是做到这一点的方法 如果是这样 为什么会出现警告 这是我使用的简单
  • 新BFC“清”浮箱

    如示例所示 应用display inline block 到包含块似乎 清除 了其中的浮动框 wrapper inline block display inline block left column background color te