css:block元素中包含img底部出现间隙的原因和解决方法

原因 根据【css权威指南(中文第三版)】

因为是基线对齐(vertical-align: baseline,要求一个元素的基线与其父元素的基线对齐)的规则,这个对齐规则使得一些Web浏览器总把替换元素的底边放在基线上,即使该行中没有其他文本。例如一个表单元格中只有一个图像。这个图像可能实际在基线上,不过在某些浏览器中,基线下面的空间会导致图像下出现一段空白。另外一些浏览器则会把图像“紧包”在表单元格中,所以不会出现空白。根据CSS工作组的意见,这种空白的行为是正确的,不过大多数创作人员都不喜欢这种做法。

解决方案

1. 给<img>标签设置为:display:block。

img{ display: block;}

2. 定义容器里的字体大小为0。

div{ font-size: 0; }

3. 定义图片img标签vertical-align:top,vertical-align:bottom,vertical-align:middle。

img{ vertical-align: top || bottom || middle; }

还有其他方法的,不过个人觉得这三个方法就足以解决了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容