【发布时间】:2022-10-07 01:33:01
【问题描述】:
为什么设置宽度/高度和填充等与 display: inline-block 相比 display: inline ?据我了解,内部display: inline-block 的外部显示类型为inline,内部显示类型为flow-root,display: inline 的外部显示类型为inline,内部显示类型为flow。我不明白将内部显示类型设置为flow-root 如何有助于使inline-block 元素的宽度/高度等被视为正常流程的一部分。设置宽度和高度会改变元素的盒子模型的宽度和高度,但它的外部显示类型仍然是内联的。这意味着该元素仍然参与其父级的内联格式化上下文,其中它的框模型宽度/高度等在正常流程中不占用空间。
例如,.inline p 元素被允许更改其盒子模型的填充,但盒子模型宽度/高度的变化不会导致它在正常流程中占用空间,所以即使盒子模型变大,它不会将其他盒子向下推。
但是,更改.inline-block p 元素的填充确实会使其在正常流中占用空间。
我不明白如何理解将内部类型更改为 flow-root 会使带有 display: inline-block 的元素突然将其宽度/高度等视为正常流程的一部分,因为它们的外部显示类型仍然是内联的。
.inline {
display: inline;
padding: 30px ;
border: 1px solid blue;
}
.inline-block {
display: inline-block;
padding: 20px;
border: 1px solid green;
}
<div>
<p class=\"inline\">
inline
</p>
This is some filler text
</div>
<div>
<p class=\"inline-block\">
inline-block
</p>
This is some filler text
</div>
-
我觉得你在这方面想多了。规范详细说明了每种情况:w3.org/TR/CSS22/visudet.html 和 inline-block 与 inline 不同。它们有相似之处,但并非 100% 相同
标签: css