如何应用ul、li标签 创建css横向导航菜单?

这篇博客解析了如何利用HTML的`<ul>`和`<li>`标签结合CSS来构建横向导航菜单。关键在于设置`div id="nav"`作为容器,`line-height`确保文字垂直居中,`white-space: nowrap`保持文本在同一行,`list-style-type: none`和`display: inline`使列表项水平排列。此外,通过调整`padding`属性控制链接间的间距,实现美观的导航菜单效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们制作导航条按照传统的方法由放在一行表格单元里的图形图像构成,或者由单元格内的文字所组成,由于人们不再推荐用表格来定位任何非表格的页面内容,所以很多制作Web的人正在寻找新的方法,用结构化的XHTML标记和CSS格式来创建导航条。这样的创建方式也更对搜索引擎蜘蛛友好,这对我们来说是非常重要的。

  创建CSS样式文本导航条的最简单解决方法也许就是把所有的链接都放在一行文本里,这种方法看起来很合理也很直观。但问题在于把所有的链接都放在一行文本里就很难控制链接之间以及前后的空白。所以,为了避免所有的链接都挤在一起,你最后通常都不得不插入一些东西或者非换行的空白字符作为分隔,让这些文字分离开来,不至于混在一起。但这样有意义吗?

  现在我们正常的做法是应用ul、li标签把链接作为无序列表(unordered list)来标识。再应用CSS样式对其进行控制,按我们预想的形式在容器中显示出来。对导航条使用无序列表似乎是不符合直观感受的,因为我们习惯于把无序列表作为一个竖着推起来的列表项目,每个前面都放着一个列表预设标记。这似乎不符合导航条水平方向的习惯。但作为独立列表项目集合的列表逻辑结构能够适用于导航条里的链接;而CSS的规则让你能够强制取代列表项目缺省的表现形式,以消除它们并安排列表项在容器内按水平方向排列,而不是从上而下的规则。现在让我们来看看实例,根据无序列表创建CSS样式和XHTML标签的横向导航菜单。

  我们看看下面的xhtml代码:

div css xhtml xml Example Source Code Example Source Code[
<div id="nav">
  <ul>
    <li><a href="http://www.52css.com/">HomePage</a></li>
    <li><a href="http://www.52css.com/">Div+CSS教程</a></li>
    <li><a href="http://www.52css.com/">CSS布局实例</a></li>
    <li><a href="http://www.52css.com/">CSS2.0教程 </a></li>
    <li><a href="http://www.52css.com/">CSS在线手册</a></li>
    <li><a href="http://www.52css.com/">Web标准</a></li>
    <li><a href="http://www.52css.com/">XHTML教程</a></li>
  </ul>
</div>

  我们再看看关于这段xhtml的CSS代码:

div css xhtml xml Example Source Code Example Source Code
#nav {
    height: 30px;
    width: 100%;
    background-color: #c00;
}
#nav ul {
    margin: 0 0 0 30px;
    padding: 0px;
    font-size: 12px;
    color: #FFF;
    line-height: 30px;
    white-space: nowrap;
}
#nav li {
    list-style-type: none;
    display: inline;
}
#nav li a {
    text-decoration: none;
    font-family: Arial, Helvetica, sans-serif;
    padding: 7px 10px;
    color: #FFF;
}
#nav li a:hover {
    color: #ff0;
    background-color: #f00;
}

  我们来看看上面的代码的运行效果:

div css xhtml xml Source Code to Run Source Code to Run

   [ 可先修改部分代码 再运行查看效果 ]


  或许你并不能完全理解这些代码都是什么意义,都用来控制什么,达到什么效果。
  下面我们来解析上面的代码:

  xhtml代码首先定义了一个容器div id="nav"。这个容器用来放置这个无序列表横向导航菜单的内容,但也有人认为这个容器是多余的,直接定义ul id="nav"就可以了。我们不建议你这样做,要知道我们的站点是可扩展的,我们要为将来的扩展留有足够的余地,如果我们的导航样式设计的更加复杂,仅有的ul是不能满足需要的。我们定义这样的容器也更符合我们编写代码的习惯。

  #nav定义了窗口的宽高及背景颜色。#nav ul包含有margin和padding声明,字体及颜色声明。line-height: 30px;是非常重要的定义,如果取消掉行高的定义,我们的链接文字垂直居中就可能受到影响。white-space: nowrap;或许大家并不能理解有什么作用,它定义了强制在同一行内显示所有文本,直到文本结束或者遭遇br对象。

     #nav li中的list-style-type: none;去除了列表项所使用的预设标记。使其更象是纯文本,而没有列表标记。display: inline;声明则能够让列表项目在页面上从左向右浮动,而不会让每个项目显示在单独的行里而从上至下的排列。这两项声明是我们实现无序列表横向导航菜单的关键。
  #nav li a和#nav li a:hover定义了链接的样式。其中的内容就不作深入了,唯一要讲的就是:padding: 7px 10px;它是用来控制链接文字之间的空白间隔的,你可以试着改变数值试试看。

  至此,无序列表创建css横向导航菜单的工作就结束了.
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值