html - 为什么位置:absolute adds 4px to the height of the outer container and how to remove it?

标签 html css

我正在尝试制作某种流体集管或其他东西。问题是我注意到当我将 position:absolute 添加到 a 元素时,它会向标题添加 4 个像素: enter image description here

如果我删除 position:absolute,则它不会在高度上额外增加 4 个像素: enter image description here

这是我到目前为止的想法:

<div class="content-container">
        <a href="#" class="header-logo"><img src="https://i.imgur.com/bn2vAjo.png" alt="" title=""></a>
        <nav class="main-menu">
            <ul>
                <li><a href="">Journal</a></li>
                <li><a href="">About</a></li>
                <li><a href="">About</a></li>
                <li><a href="">Contact</a></li>
            </ul>
        </nav>
</div>

.content-container {
    background: #292929;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.header-logo {
    align-self: center;
}

nav.main-menu {
    align-self: center;
}
nav.main-menu li {
    display:inline-block;
    width: 132px;
    height: 132px;
    font-weight:600;
    position: relative;
}

nav.main-menu li a {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

* {
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

https://jsfiddle.net/yafs3yoo/

我显然在这里遗漏了一些东西,但我自己无法弄清楚。 我希望这个标题正好是 132 像素高(带边框), Logo 位于左侧(垂直居中),菜单位于右侧(垂直居中)。如何摆脱标题中的这些额外的 4 个像素?

最佳答案

正如 Paulie_D 在评论中暗示的那样,只需将 vertical-align: top; 添加到 nav.main-menu li 的规则中即可

https://jsfiddle.net/3z0vefLL/1/

这是由于内联 block 沿基线的默认垂直对齐。

关于html - 为什么位置:absolute adds 4px to the height of the outer container and how to remove it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46890779/

相关文章:

css - 如何创建图像缩放效果(不悬停)

css - 为什么 CSS 继承在 IE8 中对我不起作用?

jquery - 专注于每个选项卡的第一个输入

android - 如何设置图像拉伸(stretch)并填满屏幕? (画面一分为二)

javascript - FlotJS 工具提示扰乱了响应能力?

javascript - 如何在保证在Android中工作的网页中制作输入类型="file"字段?

javascript - Jquery 长段落显示更多/显示更少链接不起作用

javascript - 如果在 angularjs 中的 div 外部单击,如何隐藏 div

html - flex-grow 最大值或缩小元素之间空间的边距

javascript - 当输入有焦点时保持 Div 的可见性