【问题标题】:5px extra margin getting added to the bottom of each div5px 额外边距被添加到每个 div 的底部
【发布时间】:2026-01-05 03:35:01
【问题描述】:

我正在尝试为 css 中的页面设计一个简单的标题。我计划将两个 div 堆叠在一起。顶部有许多选项卡,底部是纯单图像 div。但是在渲染时,我看到这两个 div 的高度都增加了 5px。所以我不能把底部完全放在另一个上面。

自动有一个 5px 的下边距。我尝试了负边距,将全局边距和填充重置为零。还是没用。

这是代码。

<div class ="main_nav">
 <div class="first_tab">
 <img src ="images/startup/tab1_brown.png" height="25" width="90" alt="Temp" /> 
 </div>
 <div class = "ind_tab">
 <img src ="images/startup/tab1_orange.png" height="25" width="90" alt="Temp"/>
 </div>
 <div class = "ind_tab">
 <img src ="images/startup/tab1_brown.png" height="25" width="90" alt="Temp" />
 </div>
</div>
<div class="lock">
 <img src ="images/startup/divbg_new.png" alt="Temp" />
</div>

CSS:

 *{ margin:0; padding:0; }
ul.master_navigation
{
    font-size: 125%;
    font-weight: bold;
    text-align: center;
    list-style: none;
    margin: 0.5em 0;
    padding: 0;
}

ul.master_navigation li
{
    display: inline-block;
    padding: 0 1%;
}

a
{
    color: #08f;
    font-weight: bold;
    text-decoration: none;
}

a:visited
{
    color: #88f;
}

a:hover
{
    color: #f00;
}

p
{

    text-align: justify;
}


p.cent
{
    text-align: left;
}

div.header
{    
    height: 200;
}

div.main_nav
{ 
    display: inline-block;
    height: 25;

    width: 900;
    padding: 0;
    margin: 0;
    vertical-align: bottom;

}

div.first_tab
{    
    height: 25;
    float: left;


}
div.ind_tab
{    

    height: 25;
    float: left;
    margin-left: -10px;
    z-index: -5;

}

div.lock
{
    margin-top: -100;
    height: 91;
    width: 900;
    padding: 0;
    margin: -5;

}

身体 {

    width:900px;
    max-width: 100%;
    margin: auto;
    padding: 0;
    background-image:url(images/startup/bg_2.gif);
    background-repeat:repeat-x;
}

.pad 
{
    padding: 0;
    margin: 0;

}

这是页面的链接

http://net4.ccs.neu.edu/home/pradep/

我在这方面花费了太多时间。请帮忙。

【问题讨论】:

  • 下次你发布问题时,请好好组织你的代码。带有相应 CSS 的 div。无需粘贴整个 CSS。欢迎使用 *。

标签: css html margin extra


【解决方案1】:

Ege 的回答对我非常有用。我花了几个小时来找到 div 中某些图像底部填充的原因。这是行高。在有趣的区域将其设置为 0px:

.divclass {
    line-height: 0px; /* crucial for bottom padding 0 !!! */
}

【讨论】:

  • 如此简单的解决方案,但 CSS 方面却如此烦人!
  • 这对我很有帮助。谢谢!
  • 我有一个高度为 47px 的图像,但包装 div 为 52px,底部添加了额外的 5px。这是对我有用的解决方案 - nw div 也是 47px
【解决方案2】:

我认为你的问题是line-height。是的,就是这样。刚刚在萤火虫上添加了line-height:0,它们粘在一起了。

关于内联块的事情是它们的行为就像任何内联文本一样,您在下面的导航中也有类似的问题,因为您在代码中按下了输入,它会将其呈现为不间断的空格并添加左右两侧也有额外的 x 边距。这里的 X 取决于字体大小。

为了解决这个问题,您可以在同一行关闭和打开标签,如下所示:

<div>
.
.
.
</div><div>
.
.
.
</div>

或者您可以将font-sizeline-height 设置为0,但如果您在该div 中没有其他选择器,这并不总是可行的。

【讨论】:

    【解决方案3】:

    您需要在 CSS 声明中指定单位。

    http://jsfiddle.net/m7YCW/

    div.main_nav
    { 
        display: inline-block;
        height: 25px;       /* set px */
        width: 900;
        padding: 0;
        margin: 0;
        vertical-align: bottom;    
    }
    

    学习在 Chrome 中使用您的开发者工具,如果您在元素上单击鼠标右键并选择 -> 检查,它将调出开发工具。然后,您可以查看“指标”和“计算样式”区域,看到 main_nav 呈现为 30 像素而不是 25 像素,并且在 25 css 声明旁边有一个警告符号,它被显式删除。

    【讨论】:

    • 成功了。这是一件很基本的事情。但是造成了太大的问题。非常感谢。从现在开始我永远不会忘记添加 px。
    • *您需要在 CSS 声明中指定单位。 * - 你有以下 CSS 代码:width: 900; :)
    • @DaveRook - 这是他自己的代码的剪切/粘贴。他需要在他的所有声明上设置单位。我只指出了第一个。
    【解决方案4】:

    尝试在图片上设置vertical-align:bottom

    【讨论】: