2016-02-12 72 views
2

我在导航栏的中心有一个品牌形象,在其两侧有一个菜单。我想将两个菜单对齐到图像(图像右侧的菜单左对齐,反之亦然)。我在右侧菜单上管理了这个,但我无法对齐左侧的菜单。对齐Navbar菜单到页面中间

我已经把现在,看起来大屏幕不错,但不会将小屏幕上正常凝结(在左边,右边是正确的)。

CSS

.navbar{ 
    background-color: white; 
    border: 0px; 
    height: 200px; 
} 

.navbar-middle { 
    position: absolute; 
    width: 100%; 
    left: 0; 
    text-align: center; 
    margin: auto; 
} 

.navbar-left { 
    padding-right: 10%; 
    padding-top: 90px; 
    width: 50%; 

} 

.navbar-right { 
    padding-left: 3%; 
    padding-top: 90px; 
    width: 50%; 
} 

.navbar-left li { 
    padding-left: 20%; 
} 

.navbar-right li { 
    padding-left: 15%; 
} 

HTML

<ul class="nav navbar-nav navbar-left"> 
    <li><a href="#">Home</a></li> 
    <li><a href="#">Our Vision</a></li> 
    <li><a href="#">The Team</a></li> 
</ul> 

<ul class="nav navbar-middle"> 
    <li><img src="200.jpg"></li> 
</ul> 

<ul class="nav navbar-nav navbar-right"> 
    <li><a href="#">Portfolio</a></li> 
    <li><a href="#">FAQs</a></li> 
    <li><a href="#">Contact</a></li> 
</ul> 

感谢您的帮助!

+0

参见[我的回答(HTTP: // stackove rfl.com/china/questions/35352519/align-navbar-menu-to-the-middle-of-the-page/35352768#35352768)并在完整页面模式下运行代码片段 – Trix

回答

2

我觉得你像这样

ul{ 
 
    list-style: none; 
 
    padding: 0; 
 
} 
 
.navbar{ 
 
    background-color: white; 
 
    border: 0px; 
 
    height: 200px; 
 
    display: flex; 
 
    flex-wrap: nowrap; 
 
    justify-content: center; 
 
    align-items: flex-end; 
 
} 
 

 
.navbar-left { 
 
    display: flex; 
 
    flex-wrap: nowrap; 
 
    justify-content: center; 
 
    align-items: flex-end; 
 
} 
 

 
.navbar-middle { 
 
    margin: 0 20px; 
 
} 
 

 
.navbar-right { 
 
    display: flex; 
 
    flex-wrap: nowrap; 
 
    justify-content: center; 
 
    align-items: flex-start; 
 
} 
 

 
.navbar-left li { 
 
    margin-left: 20px; 
 
    white-space:nowrap; 
 
} 
 

 
.navbar-right li { 
 
    margin-right: 20px; 
 
    white-space:nowrap; 
 
}
<div class="navbar"> 
 
<ul class="nav navbar-nav navbar-left"> 
 
    <li><a class="pull-right" href="#">Home</a></li> 
 
    <li><a href="#">Our Vision</a></li> 
 
    <li><a href="#">The Team</a></li> 
 
</ul> 
 

 
<img class="nav navbar-middle" src="https://placehold.it/200x100/894567/ffffff?text=Logo"> 
 

 
<ul class="nav navbar-nav navbar-right"> 
 
    <li><a href="#">Portfolio</a></li> 
 
    <li><a href="#">FAQs</a></li> 
 
    <li><a href="#">Contact</a></li> 
 
</ul> 
 
</div>

+0

这与我正在寻找的内容非常接近!谢谢您的帮助! – jorge132

1

从我所看到的检查元素中可以看出,您的三个ul似乎是重叠的。

因此,我将navbar-leftnavbar-right类的宽度分别改为45%,并为图像添加了宽度规格,即img src="200.jpg" size=10%

从我可以告诉你的左边ul看起来是右对齐的,不是因为class="pull-right"而是因为你的.navbar-left li { padding-left: 20%; }。您可以对navbar-right执行相同操作,即.navbar-right li { padding-right: 20%; }

这是结果:http://codepen.io/anon/pen/OMreKN。不知道它是你在找什么。

1

这里后,另一种选择:JSFiddle

<div class="wrapper"> 
    <ul class="nav navbar-nav navbar-left"> 
     <li><a class="pull-right" href="#">Home</a></li> 
     <li><a href="#">Our Vision</a></li> 
     <li><a href="#">The Team</a></li> 
    </ul> 

    <ul class="nav navbar-middle"> 
     <li><img src="200.jpg"></li> 
    </ul> 

    <ul class="nav navbar-nav navbar-right"> 
     <li><a href="#">Portfolio</a></li> 
     <li><a href="#">FAQs</a></li> 
     <li><a href="#">Contact</a></li> 
    </ul> 
</div> 

body { 
    margin: 0; 
} 
.wrapper { 
    background-color: gray; 
    font-size: 0; 
    width: 100%; 
    height: 100px; 
    text-align: center; 
} 
img { 
    width: 100%; 
} 
.nav { 
    display: inline-block; 
    font-size: initial; 
    list-style: none; 
    padding: 0; 
    vertical-align: middle; 
} 
li { 
    display: inline-block; 
    width: 75px; 
} 
.navbar-left, .navbar-right { 
    width: 45%; 
} 
.navbar-middle { 
    width: 10%; 
} 
+0

这是一个稍微简单的解决方案,不使用flex。我不知道这是你在找什么... –