我认为这两个div应该是相同的高度,但它们不是

时间:2015-02-18 05:14:57

标签: css

以下代码段显示黑色区域的高度比红色区域高4个像素。我的问题是什么使这个区别?我认为图像大小与#placeholder相同,这应该使黑色区域与红色区域一样高。



* {
  margin: 0;
  padding: 0;
}

#header-container {
    background-color: black;
}

#header {
    margin: 0 auto;
    width: 500px;
    color: white;
}

#header-container2 {
    background-color: red;
}

#header2 {
    margin: 0 auto;
    width: 500px;
}

#placeholder {
  width: 250px;
  height: 80px;
}

<div id="header-container">
    <div id="header">
        <img src="http://placehold.it/250x80">height: 84px
    </div>
</div>
<div id="header-container2">
    <div id="header2">
        <div id="placeholder">height: 80px<div>
    </div>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:3)

style="display: block;"添加到您的顶部标题<img>。这将解决您的问题。它目前在您的示例中使用style="display: inline;"

答案 1 :(得分:1)

图片是内联元素,默认为vertical-alignbaseline。只需添加img的样式,即vertical-align: topvertical-align: middle

或者,从图片旁边删除文字并将其设为display: block

&#13;
&#13;
* {  margin: 0; padding: 0; }
#header-container { background-color: black; }
#header { margin: 0 auto; width: 500px; color: white; }
#header-container2 { background-color: red; }
#header2 { margin: 0 auto; width: 500px; }
#placeholder { width: 250px; height: 80px; }


img { vertical-align: top; } /* <-- Add this style to image */
&#13;
<div id="header-container">
    <div id="header">
        <img src="http://placehold.it/250x80">height: 84px
    </div>
</div>
<div id="header-container2">
    <div id="header2">
        <div id="placeholder">height: 80px<div>
    </div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

默认行高与图像相加添加额外像素。 检查一下: - http://jsbin.com/rodamapezo/1/edit?html,css,output