CSS导航栏是一种使用 CSS 技术创建的导航栏。与传统的 HTML 导航栏相比,CSS 导航栏具有更高的灵活性和可定制性。通过使用 CSS,用户可以精确地控制导航栏的外观和行为,包括颜色、大小、位置以及鼠标悬停时的效果等。此外,CSS 还可以与 JavaScript 结合使用,以实现更复杂的交互效果。
一、导航栏和链接列表
作为标准的 HTML 基础,一个导航栏是必须存在的,在接下来的例子中,我们将建立一个标准的 HTML 列表导航栏,导航条基本上是一个链接列表,因此使用 <ul> 和 <li> 元素非常有意义。
实例:
<ul> <li><a href="default.asp" rel="external nofollow" >首页</a></li> <li><a href="news.asp" rel="external nofollow" >支持</a></li> <li><a href="contact.asp" rel="external nofollow" >新闻</a></li> <li><a href="about.asp" rel="external nofollow" >关于</a></li> </ul>
现在,让我们从列表中删除边距和填充:
实例:
ul { list-style-type:none; margin:0; padding:0; }
例子解析:
- list-style-type:none :移除列表前小标志。一个导航栏并不需要列表标记;
- 移除浏览器的默认设置将边距和填充设置为 0;
- 上面的例子中的代码是垂直和水平导航栏使用的标准代码。
二、垂直导航栏
上面的代码,我们只需要元素的样式,建立一个垂直的导航栏:
a { display:block; width:60px; }
示例说明:
- display:block :显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度;
- width:60px :块元素默认情况下是最大宽度。我们要指定一个 60 像素的宽度。
完全样式的垂直导航栏的示例:
<html> <head> <style> ul { list-style-type:none; margin:0; padding:0; } a:link,a:visited { display:block; font-weight:bold; color:#FFFFFF; background-color:#98bf21; width:120px; text-align:center; padding:4px; text-decoration:none; text-transform:uppercase; } a:hover,a:active { background-color:#7A991A; } </style> </head> <body> <ul> <li> <a href="#home" rel="external nofollow" rel="external nofollow" >首页</a> </li> <li> <a href="#news" rel="external nofollow" rel="external nofollow" >支持</a> </li> <li> <a href="#contact" rel="external nofollow" rel="external nofollow" >新闻</a> </li> <li> <a href="#about" rel="external nofollow" rel="external nofollow" >关于</a> </li> </ul> </body>
注意:请务必指定元素在垂直导航栏的的宽度。
三、水平导航栏
在创建横向导航栏时,有两种主要的方法可以选择:
1、内联的列表项;
2、浮动的列表项。
如果想实现具有相同大小的导航链接链接到不同部分的导航栏,那么必须采用浮动的方法来实现。
四、内嵌列表项
指定元素是建立一个横向导航栏的方法之一, 以下代码是标准的内嵌:
li { display:inline; }
实例解析:
- display:inline :默认情况下,<li> 元素是块元素。在这里,我们删除换行符之前和之后每个列表项,以显示一行。
完全样式的水平导航栏的示例:
<html> <head> <style> ul { list-style-type:none; margin:0; padding:0; padding-top:6px; padding-bottom:6px; } li { display:inline; } a:link,a:visited { font-weight:bold; color:#FFFFFF; background-color:#98bf21; text-align:center; padding:6px; text-decoration:none; text-transform:uppercase; } a:hover,a:active { background-color:#7A991A; } </style> </head> <body> <ul> <li><a href="#home" rel="external nofollow" rel="external nofollow" >Home</a></li> <li><a href="#news" rel="external nofollow" rel="external nofollow" >News</a></li> <li><a href="#contact" rel="external nofollow" rel="external nofollow" >Contact</a></li> <li><a href="#about" rel="external nofollow" rel="external nofollow" >About</a></li> </ul> <p><b>Note:</b> If you only set the padding for a elements (and not ul), the links will go outside the ul element. Therefore, we have added a top and bottom padding for the ul element.</p> </body> </html>
五、浮动列表项
在上述的例子中,我们可以看到链接的宽度并不相同。对于所有的链接宽度相等,浮动元素,并指定为元素的宽度:
li { float:left; } a { display:block; width:60px; }
实例解析:
- float:left :使用浮动块元素的幻灯片彼此相邻;
- display:block :显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度;
- width:60px :块元素默认情况下是最大宽度。我们要指定一个60像素的宽度;
- display:inline; :默认情况下,元素是块元素。在这里,我们删除换行符之前和之后每个列表项,以显示一行 。