div中放入一个img元素导致div高度会多出几个像素

提出问题

div 里嵌套一个 img 元素,且 div 的高度是由 img 的 高度 来撑开,那么 div 的高度总会比 img 的 高度多 3px

例子

css:

#header{
    width : 400px ;
    border : 1px solid #000 ; /* 为了方便观察,此处给div加了1px的边框 */
}
#header img{
    width: 100% ;
}

html:

<div id = "header">
    <img src="img/header.png"/>
</div>

分析

img 是一种类似 text的元素,在结束的时候,会在末尾加上一个 空白符,所以就会多出3px

如果 div 包裹 a 标签也会出现同样的问题

解决方法

  1. 设置 div{ font-size: 0} 将外层块级标签的font-size设置为0;

  2. 设置 div 高度

  3. 设置 img{ display: block} 将内层行内标签的display设置为block,将其变为块级标签;

  4. 设置 img{ vertical-align:top;} 将内层行内标签的 vertical-align 设置为 top ;


原文出处:/show_1IX38oZia0cd.html