我的一个列表元素的位置低于其余元素,即使它们都具有相同的高度

时间:2018-05-11 23:38:54

标签: html css

由于某些原因,我的一个列表元素比其余元素低1个像素,即使它们都具有相同的高度。您将看到包含图像和用户名的列表元素比其余部分低1个像素。我在我的CSS中尝试了很多,似乎没有解决这个问题所以它可能是我不完全理解的东西。

HTML5

<section class="header">
            <div class="wrapper">
                <nav class="navigation">
                    <ul>
                        <li><a href="{{ route('home') }}">Images</a></li>
                        <li><a href="{{ route('albums') }}">Albums</a></li>
                        <li><a href="{{ route('tags') }}">Tags</a></li>
                        @auth
                        <li><a href="{{ route('upload') }}">Upload</a></li>
                        <li class='logOut'><a href="{{ route('logout') }}">Logout</a></li>
                        <li class='navUsernameLi'><img class='navProfilePicture' src='{{url("storage/uploads/profile_pictures/".Auth::user()->profile_picture)}}'><p class='navUsernameP'>{{ Auth::user()->username }}</p></li>
                        @endauth
                        @guest
                        <li id='signUp'>Sign Up</li>
                        <li id="logIn">Log In</li>
                        @endguest
                        <li><a href="{{ route('contact') }}">Contact Us</a></li>
                        @auth
                        @if (Auth::user()->hasRole('Admin'))
                            <li><a href="{{ route('admin') }}">Admin Panel</a></li>
                        @endif
                        @endauth
                    </ul>
                </nav>
            </div>
        </section>

CSS3

.navigation {
  height: 50px;
  width: 100%;
  background-color: #151719;
}

.navigation > ul {
  display: inline;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.navigation > ul li {
  display: inline-block;

}

.navigation > ul li a {
    font-size: 16px;
  display: block;
  color: #fff;
  padding: 0 0px 0;
  text-align: center;
  vertical-align: middle;
  line-height: 50px;
  text-decoration: none;
  white-space: nowrap;
}
.navUsernameLi {
    float: right;
}
.navUsernameP {
    display: inline-block;
    color: white;
}
.navProfilePicture {
    display: inline-block;
    border-radius: 50px;
}
.navUsernameLi {
    float: right;
    text-align: center;
    vertical-align: middle;
    line-height: 50px;
    height: 50px;
}
.navUsernameP {
    display: inline-block;
    color: #fff;
    text-align: center;
    vertical-align: middle;
    line-height: 50px;
}
.navProfilePicture {
    display: inline-block;
    border-radius: 50px;
    height: 24px;
    width: 24px;
    text-align: center;
    vertical-align: middle;
    line-height: 50px;
}

如果有人想亲眼看到这个网站 - http://www.onyx.space/。使用Admin登录用户名和密码。您将看到包含图像和用户名的列表元素比其余部分低1个像素。

1 个答案:

答案 0 :(得分:2)

您的问题是由line-height: 50px;的{​​{1}}生成的,将其删除后会对齐:

.navUsernameLi

已经有.navUsernameLi { float: right; text-align: center; vertical-align: middle; /*line-height: 50px;*/ height: 50px; } 就足够了,行高会覆盖元素的定位方面。