css - block 不垂直扩展以进行内联填充

标签 css

一个简单的 block 元素不会垂直扩展,除非它的内容是内联 block 或 block 。

参见 fiddle :https://jsfiddle.net/4148xjvv/7/

或者看代码:

HTML:

<div class='parent'>
  <span class='padding'>Inline</span>
</div>

<br><br>

<div class='parent'>
  <span class='inline-block padding'>Inline-block</span>
</div>

<br><br>

<div class='parent'>
  <div class='padding'>Block</div>
</div>

CSS:

.parent {
  background-color: red;
  color: white;
}

.padding {
  padding: 10px;
}

.inline-block {
  display: inline-block;
}

结果:

Result

横向填充有效,但垂直无效。

Chrome 调试器显示填充存在,但从父级流出。

Chrome Debugger

显然这不是什么大问题,如果我需要填充,我可以将 child 更改为内联 block ,所以我想知道为什么会发生这种情况。

最佳答案

我发现这篇文章对理解正在发生的事情非常有帮助:https://hacks.mozilla.org/2015/03/understanding-inline-box-model/

Any vertical padding, border, or margin applied to an element will not push away elements above or below it.

enter image description here

基本上,如上图所示,添加了内边距,只是不会改变元素的垂直位置。

关于css - block 不垂直扩展以进行内联填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34701218/

相关文章:

html - 当内容的一部分时内联显示 SVG : url() and changing its colour

html - 如何使用边距设置标签栏之间的空格?

css - 使文本在此 Div 中对齐

jquery - 为jquery样式切换添加cookie

html - 如何将此表格布局转换为 div 布局?

php - "stretch"的 Wordpress 特定方法,(最小高度)等我的页面内容,以便我的页脚后没有空格?

html - 具有特定图像坐标的背景位置右上角

php - Bootstrap 3.3.7 与 codeigniter

html - 使用 css 边框形成 Angular 点

html - ML - CSS 如何正确对齐 la 表单标签前的 'required' 星号与标签文本?