HTML 中央导航栏
HTML center nav bar
如何让导航栏居中,但仍显示为网站顶部的一条线?我知道我必须更改构建 li 的 css 文件中的某些内容,但我无法弄清楚。代码是:
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
css 文件如下:
ul {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #791519;
}
你可以通过改变 ul 的位置来做到这一点
检查 ul
的以下 css 更改
ul {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
position:relative;
left:100px;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #791519;
}
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
希望对您有所帮助
我推荐使用 Flex Box:
ul {
display: flex;
flex-direction: row;
align-items: stretch;
list-style-type: none;
width:100%;
padding: 0;
overflow: hidden;
background-color: #333;
}
li{
flex-grow: 1;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #791519;
}
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
我会将其包裹在 NAV 标签中,并在 NAV 标签上设置文本居中对齐。
nav {
text-align:center;
}
ul {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
margin:0 auto;
}
<nav>
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
</nav>
也许这样(添加换行和文本对齐:居中):
.center {
margin: 0 auto;
text-align: center;
}
ul {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #791519;
}
<div class="center">
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
</div>
如何让导航栏居中,但仍显示为网站顶部的一条线?我知道我必须更改构建 li 的 css 文件中的某些内容,但我无法弄清楚。代码是:
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
css 文件如下:
ul {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #791519;
}
你可以通过改变 ul 的位置来做到这一点 检查 ul
的以下 css 更改ul {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
position:relative;
left:100px;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #791519;
}
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
希望对您有所帮助
我推荐使用 Flex Box:
ul {
display: flex;
flex-direction: row;
align-items: stretch;
list-style-type: none;
width:100%;
padding: 0;
overflow: hidden;
background-color: #333;
}
li{
flex-grow: 1;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #791519;
}
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
我会将其包裹在 NAV 标签中,并在 NAV 标签上设置文本居中对齐。
nav {
text-align:center;
}
ul {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
margin:0 auto;
}
<nav>
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
</nav>
也许这样(添加换行和文本对齐:居中):
.center {
margin: 0 auto;
text-align: center;
}
ul {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #791519;
}
<div class="center">
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a href="index.html">Tab 1</a></li>
<li><a href="index.html">Tab 2</a></li>
<li><a href="index.html">Tab 3</a></li>
<li><a href="index.html">Tab 4</a></li>
</ul>
</div>