CSS 垂直导航条
垂直导航条
如需构建垂直导航条,除了上一章中的代码外,还可以在列表中设置 <a> 元素的样式:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
li a {
display: block;
width: 60px;
background-color: #dddddd;
}
</style>
</head>
<body>
<ul>
<li><a href="#home">首页</a></li>
<li><a href="#news">新闻</a></li>
<li><a href="#contact">联系方式</a></li>
<li><a href="#about">关于我们</a></li>
</ul>
<p>背景色被添加到链接以显示链接区域。</p>
<p>请注意,整个链接区域都是可单击的,而不仅仅是文本。</p>
</body>
</html>
例子解释:
display: block;
- 将链接显示为块元素可以使整个链接区域都可以被单击(而不仅仅是文本),我们还可以指定宽度(如果需要,还可以指定内边距、外边距、高度等)。
width: 60px;
- 默认情况下,块元素会占用全部可用宽度。我们需要指定 60 像素的宽度。
您还可以设置 <ul> 的宽度,并删除 <a> 的宽度,因为当显示为块元素时,它们将占据可用的全部宽度。这将导致与我们之前的例子相同的结果:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 60px;
}
li a {
display: block;
background-color: #dddddd;
}
</style>
</head>
<body>
<ul>
<li><a href="#home">首页</a></li>
<li><a href="#news">新闻</a></li>
<li><a href="#contact">联系方式</a></li>
<li><a href="#about">关于我们</a></li>
</ul>
<p>背景色被添加到链接以显示链接区域。</p>
<p>请注意,整个链接区域都是可单击的,而不仅仅是文本。</p>
</body>
</html>
垂直导航条实例
创建背景色为灰色的基础垂直导航条,并在用户将鼠标移到链接上时改变链接的背景色:
代码如下:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px;
background-color: #f1f1f1;
}
li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
li a:hover {
background-color: #555;
color: white;
}
</style>
</head>
<body>
<h1>垂直导航条</h1>
<ul>
<li><a href="#home">首页</a></li>
<li><a href="#news">新闻</a></li>
<li><a href="#contact">联系方式</a></li>
<li><a href="#about">关于我们</a></li>
</ul>
</body>
</html>
活动/当前导航链接
向当前链接添加 "active" 类,以使用户知道他/她在哪个页面上:
代码如下:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px;
background-color: #f1f1f1;
}
li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
li a.active {
background-color: #4CAF50;
color: white;
}
li a:hover:not(.active) {
background-color: #555;
color: white;
}
</style>
</head>
<body>
<h1>垂直导航条</h1>
<p>在此例中,我们创建一个具有绿色背景色和白色文本的 "active" 类。该类将添加到 "Home" 链接。</p>
<ul>
<li><a class="active" href="#home">首页</a></li>
<li><a href="#news">新闻</a></li>
<li><a href="#contact">联系我们</a></li>
<li><a href="#about">关于我们</a></li>
</ul>
</body>
</html>
居中链接以及添加边框
把 text-align:center
添加到 <li> 或 <a>,使链接居中。
将 border
属性添加到 <ul>,在导航条周围添加边框。如果您还希望在导航条内添加边框,请为所有 <li> 元素添加 border-bottom
,最后一个元素除外:
实例
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px;
background-color: #f1f1f1;
border: 1px solid #555;
}
li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
li {
text-align: center;
border-bottom: 1px solid #555;
}
li:last-child {
border-bottom: none;
}
li a.active {
background-color: #4CAF50;
color: white;
}
li a:hover:not(.active) {
background-color: #555;
color: white;
}
</style>
</head>
<body>
<h1>垂直导航条</h1>
<p>在本例中,我们居中导航链接并为导航条添加边框:</p>
<ul>
<li><a class="active" href="#home">首页</a></li>
<li><a href="#news">新闻</a></li>
<li><a href="#contact">联系方式</a></li>
<li><a href="#about">关于我们</a></li>
</ul>
</body>
</html>
全高固定垂直导航条
创建全高的“粘性”侧面导航:
代码如下:
<!DOCTYPE html>
<html>
<head>
<style>
html, body {
font-family: Verdana,sans-serif;
font-size: 15px;
line-height: 1.5
}
body {
margin: 0;
}
ul.vertical {
list-style-type: none;
margin: 0;
padding: 0;
width: 25%;
background-color: #f1f1f1;
position: fixed;
height: 100%;
overflow: auto;
min-width: 80px;
}
ul.vertical li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
ul.vertical li a:hover:not(.active) {
background-color: #555;
color: white;
}
ul.vertical a.active {
background-color: #04AA6D;
color: white;
}
.main {
margin-left: 25%;
padding: 1px 16px;
height: 500px;
}
@media screen and (max-width: 290px) {
.main {
margin-left: 35%;
}
}
</style>
</head>
<body>
<ul class="vertical">
<li><a class="active" href="javascript:void(0)">首页</a></li>
<li><a href="javascript:void(0)">新闻</a></li>
<li><a href="javascript:void(0)">联系方式</a></li>
<li><a href="javascript:void(0)">关于我们</a></li>
</ul>
<div class="main">
<h2>固定高度的侧边导航条</h2>
<h3>试着滚动这个区域,看看侧边导航条是如何粘在页面上的</h3>
<p>一些文本..</p>
<p>一些文本..</p>
<p>一些文本..</p>
<p>一些文本..</p>
<p>一些文本..</p>
<p>一些文本..</p>
<p>一些文本..</p>
<p>一些文本..</p>
</div>
</body>
</html>
注意:本例在移动设备上可能无法正常工作。