创建左侧标题和右侧按钮的导航栏
Create nav bar with title on left and buttons on right
这是我的导航栏现在的样子:
这就是我想要的样子(标题在左边,按钮在右边):
我将导航栏分为一个左对齐的标题列表和一个右对齐的按钮列表,但由于某种原因,这两个列表堆叠在彼此之上而不是在一条线上。如何创建上面的导航栏?
HTML
<div class = "navBarWrapper">
<div class="top bar">
<ul class = "left">
<li class = "title">Photo Albums</li>
</ul>
<ul class = "right">
<li class = "buttons"> <a class = "iconLink" href = ""><img class = "iconNotHover" src = "images/uploadImage.png" alt = "uploadImage" width = "40" align = "middle"/></a></li>
<li class = "buttons"> <a href = "login.html" class="otherPages">Login</a></li>
</ul>
</div>
</div>
CSS
.navBarWrapper {
position: fixed;
z-index: 1;
width: 100%;
}
.left {
text-align: left;
}
.right {
text-align: right;
}
.bar {
height: 8.02%;
}
.bar li {
display: inline-block;
}
您不想使用 text-align
将块元素向左或向右移动。这只会将块元素内的内联元素向左或向右对齐,并且块元素仍将位于其自己的行上。
您可以将 left/right 元素浮动到 left/right,但我会在父元素上使用 flexbox,justify-content: space-between
来分隔 left/right,而 align-items
根据需要垂直对齐它们。
.navBarWrapper {
position: fixed;
z-index: 1;
width: 100%;
}
.bar {
height: 8.02%;
display: flex;
justify-content: space-between;
align-items: center;
}
.bar li {
display: inline-block;
}
<div class="navBarWrapper">
<div class="top bar">
<ul class="left">
<li class="title">Photo Albums</li>
</ul>
<ul class="right">
<li class="buttons">
<a class="iconLink" href=""><img class="iconNotHover" src="images/uploadImage.png" alt="uploadImage" width="40" align="middle" /></a>
</li>
<li class="buttons"> <a href="login.html" class="otherPages">Login</a></li>
</ul>
</div>
</div>
或者,如果您想让它们浮动,请在 .bar
上使用 overflow: auto
来清除浮动。
.navBarWrapper {
position: fixed;
z-index: 1;
width: 100%;
}
.left {
float: left;
}
.right {
float: right;
}
.bar {
height: 8.02%;
overflow: auto;
}
.bar li {
display: inline-block;
}
<div class="navBarWrapper">
<div class="top bar">
<ul class="left">
<li class="title">Photo Albums</li>
</ul>
<ul class="right">
<li class="buttons">
<a class="iconLink" href=""><img class="iconNotHover" src="images/uploadImage.png" alt="uploadImage" width="40" align="middle" /></a>
</li>
<li class="buttons"> <a href="login.html" class="otherPages">Login</a></li>
</ul>
</div>
</div>
这是我的导航栏现在的样子:
这就是我想要的样子(标题在左边,按钮在右边):
我将导航栏分为一个左对齐的标题列表和一个右对齐的按钮列表,但由于某种原因,这两个列表堆叠在彼此之上而不是在一条线上。如何创建上面的导航栏?
HTML
<div class = "navBarWrapper">
<div class="top bar">
<ul class = "left">
<li class = "title">Photo Albums</li>
</ul>
<ul class = "right">
<li class = "buttons"> <a class = "iconLink" href = ""><img class = "iconNotHover" src = "images/uploadImage.png" alt = "uploadImage" width = "40" align = "middle"/></a></li>
<li class = "buttons"> <a href = "login.html" class="otherPages">Login</a></li>
</ul>
</div>
</div>
CSS
.navBarWrapper {
position: fixed;
z-index: 1;
width: 100%;
}
.left {
text-align: left;
}
.right {
text-align: right;
}
.bar {
height: 8.02%;
}
.bar li {
display: inline-block;
}
您不想使用 text-align
将块元素向左或向右移动。这只会将块元素内的内联元素向左或向右对齐,并且块元素仍将位于其自己的行上。
您可以将 left/right 元素浮动到 left/right,但我会在父元素上使用 flexbox,justify-content: space-between
来分隔 left/right,而 align-items
根据需要垂直对齐它们。
.navBarWrapper {
position: fixed;
z-index: 1;
width: 100%;
}
.bar {
height: 8.02%;
display: flex;
justify-content: space-between;
align-items: center;
}
.bar li {
display: inline-block;
}
<div class="navBarWrapper">
<div class="top bar">
<ul class="left">
<li class="title">Photo Albums</li>
</ul>
<ul class="right">
<li class="buttons">
<a class="iconLink" href=""><img class="iconNotHover" src="images/uploadImage.png" alt="uploadImage" width="40" align="middle" /></a>
</li>
<li class="buttons"> <a href="login.html" class="otherPages">Login</a></li>
</ul>
</div>
</div>
或者,如果您想让它们浮动,请在 .bar
上使用 overflow: auto
来清除浮动。
.navBarWrapper {
position: fixed;
z-index: 1;
width: 100%;
}
.left {
float: left;
}
.right {
float: right;
}
.bar {
height: 8.02%;
overflow: auto;
}
.bar li {
display: inline-block;
}
<div class="navBarWrapper">
<div class="top bar">
<ul class="left">
<li class="title">Photo Albums</li>
</ul>
<ul class="right">
<li class="buttons">
<a class="iconLink" href=""><img class="iconNotHover" src="images/uploadImage.png" alt="uploadImage" width="40" align="middle" /></a>
</li>
<li class="buttons"> <a href="login.html" class="otherPages">Login</a></li>
</ul>
</div>
</div>