使用flexbox定位水平菜单



我正在尝试使用flexx做固定菜单。在我的导航栏中我创建了2个div。第一个应该包含徽标,第二个菜单(具有display:flex属性)。我遇到了问题,当我想要定位我的菜单的li元素。我想要水平菜单,但是当我添加justify-content:space-between时,我的第一个元素应该位于菜单的div的左边缘,但它有一个小的边距,我不知道为什么。

https://jsfiddle.net/4Lmu08yc/

header {
    height:100vh;
    background-color:yellow;
    width:100vw;
    max-width:100%;
}
.navbar {
    width:100vw;
    background-color:grey;
    height:7vh;
    max-width:100%;
    position:fixed;
    border-bottom:5px solid white; 
    z-index:2;
}
.flex_row {
    display:flex;
    flex-direction:row;
}
.container{
    height:100%;
    width:100vw;
    max-width:100%;
    background-color:green;
    display:flex;
}
#logo {
    height:100%;
    background-color:white;
    flex-grow:1;
}
#menu {
    height:100%;
    background-color:yellow;
    flex-grow:1;
}
#menu ul {
    list-style-type:none;
    justify-content:flex-start;
    align-content:flex-end;
}
#menu ul li {
    border:1px solid black;
    line-height:40px;
}
<header>
<div class="container">
<div class="navbar flex_row">
    <div id  ="logo"></div>
    <div id ="menu">
        <ul class="flex_row">
            <li><a href="#">text1</a></li>
            <li><a href="#">text2</a></li>
            <li><a href="#">text3</a></li>
            <li><a href="#">text4</a></li>
        </ul>
    </div>
</div>
</div>
</header>

你必须添加margin:0;到"#menu ul"。

HTML自动为无序列表添加页边距。

#menu ul {
      margin:0;
}

最新更新