html - 如何垂直对齐导航栏内的元素?

标签 html css

我创建了导航栏,其中包含不同选项卡的链接和菜单的下拉菜单。我在垂直对齐导航栏内的所有元素时遇到问题。似乎是 select 标签导致了一些问题。这是我的大纲示例:

header.headerBox {
	width: 100%;
	height: 80px;
	border-top: 2px solid #000099;
	border-right: 2px solid #000099;
	border-left: 2px solid #000099;
  border-bottom: 2px solid #000099;
	background-color: #87CEFF;
}
h1.mainTitle {
	color: #000099;
	text-align: center;
	margin: 0px;
	padding-top: 5px;
	padding-bottom: 5px;
}
nav.xNavigation {
	height: 100%;
	color: #000099;
	border-top: 2px solid #000099;
	margin: 0px;
	padding-top: 2px;
	padding-left: 5px;
	padding-right: 5px;
	padding-bottom: 2px;
}
nav.xNavigation a {
	color: #000099;
	text-decoration: none;
	cursor: pointer;
	font-weight: bold;
}
nav.xNavigation select {
	float: right;
}
nav.xNavigation a:hover {
	color: white;
}
<header class="headerBox">
  <h1 class="mainTitle">Single Page Application</h1>
  <nav class="xNavigation">
    <a href="#" id="tab1">Tab 1</a> |
    <a href="#" id="tab2">Tab 2</a> |
    <a href="#" id="tab3">Tab 3</a> |
    <a href="#" id="tab4">Tab 4</a> |
    <select name="menu" id="menu">
      <option value="mainBox" selected="selected">Home</option>
        <option value="settingsBox">Settings</option>
    </select>
  </nav>
</header>

正如您在上面的代码片段中看到的那样,元素没有垂直对齐。我不确定是否有组织元素的好方法。如果有人可以提供帮助,请告诉我。谢谢。

最佳答案

如果您愿意使用 flexbox,您可以进行一些调整并创建您想要的布局。

例子

header.headerBox {
  width: 100%;
  height: 80px;
  border: 2px solid #000099;
  background-color: #87CEFF;
  display: flex;
  flex-direction: column;
}
h1.mainTitle {
  color: #000099;
  text-align: center;
  margin: 0px;
  padding: 5px 0;
}
nav.xNavigation {
  color: #000099;
  border-top: 2px solid #000099;
  margin: 0px;
  padding: 2px 5px 2px 5px;
  flex: 1;
  display: flex;
  align-items: center;
}
nav.xNavigation a {
  color: #000099;
  text-decoration: none;
  cursor: pointer;
  font-weight: bold;
}
nav.xNavigation select {
  margin-left: auto;
}
nav.xNavigation a:hover {
  color: white;
}
<header class="headerBox">
  <h1 class="mainTitle">Single Page Application</h1>
  <nav class="xNavigation">
    <a href="#" id="tab1">Tab 1</a> |
    <a href="#" id="tab2">Tab 2</a> |
    <a href="#" id="tab3">Tab 3</a> |
    <a href="#" id="tab4">Tab 4</a> |
    <select name="menu" id="menu">
      <option value="mainBox" selected="selected">Home</option>
        <option value="settingsBox">Settings</option>
    </select>
  </nav>
</header>

关于html - 如何垂直对齐导航栏内的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47895158/

相关文章:

javascript - 如何在html中呈现多行字符串变量

javascript - 在 Rails 4 中生成复选框

javascript - 卡在 jQuery 加载方法上

css - 尝试将 themeroller 连接到我的日期选择器日历

css - 如何使用 Angular 2+ 绑定(bind)到数据属性?

html - 如何在不丢失宽度的情况下使用负边距

html - 屏幕尺寸 > 容器尺寸时出现奇怪的宽度问题

html - 如何根据特定字母定位一行文本?

html - 向下移动页面以允许标题图形

jquery - 给一个class下的所有h3标签应用anchor标签