我无法在导航栏上找到对齐方式。我试图弄清楚如何让徽标部分留在导航栏的左侧,但将链接放在右侧。我尝试过使用float:对,但我似乎无法让它只在链接上工作。我怎么能这样做?
https://jsfiddle.net/t46bcayd/1/
<nav>
<ul>
<li><a href="http://google.com/" class="logo">Logo</a></li>
<li><a href="http://google.com/">One</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
</ul>
</nav>
答案 0 :(得分:6)
Flexbox在这里非常完美......除非您愿意,否则无需更改结构。
body {
margin: 0;
padding: 0;
font-size: 15px;
}
nav {
background-color: black;
margin: 0;
overflow: hidden;
}
nav ul {
margin: 0;
padding: 0;
display: flex;
}
nav ul li {
display: inline-block;
list-style-type: none;
}
nav ul li a {
color: white;
background-color: red;
display: block;
line-height: 3em;
padding: 1em 3em;
text-decoration: none;
}
nav ul li:first-child {
margin-right: auto;
}
nav ul li a.logo {
background-color: green;
}
nav ul li a:hover {
background-color: blue;
}
<nav>
<ul>
<li><a href="http://google.com/" class="logo">Logo</a>
</li>
<li><a href="http://google.com/">One</a>
</li>
<li><a href="#">Two</a>
</li>
<li><a href="#">Three</a>
</li>
</ul>
</nav>
答案 1 :(得分:0)
如果删除列表项的内联块规则,则可以将第一个向左浮动,其他向右浮动:
li {
float: right;
}
li:first-child {
float: left;
}
<强> jsFiddle example 强>
您还需要重新订购直接浮动的列表项:
<li><a href="http://google.com/" class="logo">Logo</a></li>
<li><a href="#">Three</a></li>
<li><a href="#">Two</a></li>
<li><a href="http://google.com/">One</a></li>
答案 2 :(得分:0)
使用float:left
属性
body {
margin: 0;
padding: 0;
font-size: 15px;
}
nav {
background-color: black;
margin: 0;
overflow: hidden;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li:not(:first-child) {
float: right;
}
nav ul li {
display: inline-block;
list-style-type: none;
}
nav ul li a {
color: white;
background-color: red;
display: block;
line-height: 3em;
padding: 1em 3em;
text-decoration: none;
}
nav ul li a.logo {
background-color: green;
}
nav ul li a:hover {
background-color: blue;
}
<nav>
<ul>
<li><a href="http://google.com/" class="logo">Logo</a></li>
<li><a href="http://google.com/">Three</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">One</a></li>
</ul>
</nav>
我确实需要更改顺序才能显示正确的
答案 3 :(得分:0)
你可以使用flexbox。
<style>
nav{
display:flex;
justify-content: space-between;
align-items: center;
}
</style>
<nav>
<a href="http://google.com/" class="logo">Logo</a>
<ul>
<li><a href="http://google.com/">One</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
</ul>
</nav>
记住前缀 ...适用于IE&gt; 9