我正试图制作某种流畅的标题或其他什么。问题是,我注意到当我向position:absolute
元素添加a
时,它会在标题中添加4个像素:
如果我删除position:absolute
,则它不会向高度添加4个额外像素:
这是我到目前为止所提出的:
<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像素高(带边框),标识位于左侧(垂直居中),菜单位于右侧(垂直居中)。如何摆脱标题中的这些额外的4个像素?
答案 0 :(得分:1)
正如Paulie_D在评论中暗示的那样,只需将element.text
添加到vertical-align: top;
https://jsfiddle.net/3z0vefLL/1/
这是由于沿着基线的内联块的默认垂直对齐。