html - 行高甚至影响无文本 block

标签 html css

我注意到行高似乎会影响 block 。令我感到奇怪的是,我以前从未注意到这种令人不安的效果。

问题是它会影响 block ,即使它们根本不包含文本。

created a JSFiddle来证明这个问题。如果将line-height设置为0,灰色区域将不再超过容器内图片的高度。

为什么会发生这种情况,是否有一种干净的方法来防止这种情况发生?

最佳答案

即使没有文本,line-height 值也会影响渲染,因为“'line-height'”指定元素内行框的最小高度。最小高度由基线上方的最小高度和基线下方的最小深度组成,就好像每个行框都以具有元素字体和行高属性的零宽度行内框开始一样。” ( CSS 2.1 about line-height .)

但这真的不是这里的原因。默认情况下,图像以内联方式呈现,这意味着它们充当大(或小)字母,位于文本的基线上。细节很复杂,但是通过将 line-height 设置得比字体大小小得多,您可以将基线彼此靠近,并且空间消失。

另一种消除干扰效果的方法是在 img 元素上设置 display: block。然后元素将以不同的方式格式化。

另一种方法是在 img 元素上设置 vertical-align: bottom

关于html - 行高甚至影响无文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12133024/

相关文章:

html - 对齐问题

css - 如何使 Bootstrap 下拉列表显示在模态页脚上而不是使模态溢出?

javascript - jquery遍历html元素获取IMG标签

jquery - 如何在html中隐藏radio类型的输入

css - jquery加载动画问题

html - 打破连字符而不是溢出

javascript - 点击事件后 Canvas 消失

html - Bootstrap - 如何将其中有文本的 div 居中?

javascript - 滚动时导航栏发生变化,无法使用库

javascript - 如何在 jquery css 中动画地向下滚动|向上滚动?