html - 内联 block <div> 向下推到父级之外,尽管高度为 : inherit;,但高度仍高于父级

标签 html margin padding css

问题

  1. .nav-item <div> s 的高度比他们的 parent 高 - 尽管 height: inherit; .
  2. .nav-item <div>尽管没有任何边距或填充,s 仍被推到其父项之外。

HTML

<div id="nav">
    <h1>A website</h1>
    <div class="nav-item">
        <p>Item 1</p>
    </div>
    <div class="nav-item">
        <p>Item 2</p>
    </div>
    <div class="nav-item">
        <p>Item 3</p>
    </div>
</div>

CSS

#nav {
    height: 75px;
    left: 0;
    right: 0;
    top: 0;
    margin: auto;
    position: fixed;
    background-image: url('img/gradient.png');
    padding: 0;
}    

#nav h1 {
    top: 8px;
    margin-left: 15px;
    margin-right: 15px;
    position: relative;
    font-size: 42px;
    font-family: 'Francois One', Impact, Futura, sans-serif;
    color: rgb(255,255,255);
    display: inline;
}

#nav .nav-item {
    display: inline-block;
    height: inherit;
    padding: 10px;
    margin: 0;
    background: blue;
}

#nav .nav-item p {
    font-family: 'Francois One', Impact, Futura, sans-serif;
    margin: 0;
}

结果

Screenshot 1 Screenshot 2 Screenshot 3

最佳答案

这里发生的事情正如预期的那样。高度不会被继承,由text-alignmentpaddingmargin 宽度计算。请这样做:

  1. 移除 padding 顶部和底部。
  2. 移除 margin 顶部和底部。
  3. vertical-align: top; 添加到 .nav-item 中。

解决方案

CSS

#nav .nav-item {margin: 0; padding: 0 10px; vertical-align: top;}

预览:

fiddle :http://jsfiddle.net/praveenscience/vnfdv9bj/

关于html - 内联 block <div> 向下推到父级之外,尽管高度为 : inherit;,但高度仍高于父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25444723/

相关文章:

html - css对齐图像重叠

javascript - 仅从 Javascript 制作网页

html - 修复页眉/页 footer 分在 css 中的文本对齐

html - 带和不带滚动条的 div 内表格的填充

css - 填充问题 IE8 v IE7

jquery - 我如何从单独的文本框中的自动完成响应中获取 json 键和值。请看图片

html - 如何水平对齐一系列 HTML 链接?

html - 当我更改窗口宽度大小时,为什么我的页脚会跳到页面中央?

javascript - 使用 jQuery 更改元素的 margin-right 值

html - CSS 表格 <td> 填充不能完全移除