WEB入门.九 导航菜单

WEB入门.九  导航菜单

本章简介

上一章节中讲解了 background 属性的用法,以及两种主流的背景特效——页面图片整合技术以及滑动门技术,设计师可以使用这两种技术制作出多种页面背景特效,如平滑投票、Tab 导航菜单等。

在Web 应用中,除了布局设计外,页面导航栏的设计也是站点设计中的一个重要组成部分,网站中的页面导航栏用于使用户在浏览时有明确的方向,可以快速地链接到相关内容页面,从而节省用户查找页面的时间,提高访问效率。所以,页面设计时需要选择合适的导航菜单,从而使页面的视觉效果更加清晰,操作更加方便、快捷。页面导航的形式主要包括水平导航菜单、垂直导航菜单以及下拉式导航菜单等,本章内容即将详细地讲解上述导航菜单的制作过程。

核心技能部分

5.1 水平导航菜单 门户网站中主导航菜单通常使用水平导航菜单,这是因为门户网站中的内容比较多,而且每个频道都有不同的样式区别。因此在页面的顶部设计一个风格而且不占用过多空间的水平导航菜单是最理想的选择。水平导航菜单分为横向文本导航和tab导航两种风格。

5.1.1 横向文本导航 横向文本导航适用于页面频道丰富且风格多样的大型网站,如网易、腾讯、MSN等,图 5.1.1即为网易首页。

WEB入门.九 导航菜单_css横向文本导航实现思路:

使用 div搭建导航框架。网易的导航菜单主要分为站标和内容两部分,站标区不覆盖其他文字,可直接使用 img标签插入网易站标。使用 ul和 li搭建内容部分,ul 中使用两个 li方法分行显示内容块,再使用若干超链接定义菜单。

实现步骤:

(1) 使用 div和ul搭建导航菜单框架,代码如下:

代码语言:javascript复制

(2) 向结构中添加内容,代码片断如下:

  • 新闻

    军事

    图片

    评论

  • 体育

    篮球

    足球

    跳水

(3) 定义每个组成部分的样式规则。globalMenu为导航栏容器样式,采用 ul 和 li将其分隔两行;title 为网站 logo样式;content为导航内容样式。其样式代码如下

代码语言:javascript复制 5.1.1 Tab导航导航菜单文本内容较少时,建议使用tab导航。这样可以强化页面视觉效果,拍拍购物网站即采用该导航形式,如图 5.1.3所示。

WEB入门.九 导航菜单_导航_02实现思路:

使用 div搭建菜单容器,采用无序列表ul 和 li标签实现菜单结构,a标签定义内容;使用float属性定义 li标签为浮动元素,display属性结合width、height定义超链接大小。

实现步骤:

(1) 定义导航菜单结构,代码如下:

代码语言:javascript复制

(2) 定义无序列表样式规则,代码如下:

代码语言:javascript复制 5.1 垂直导航菜单 垂直导航是网站导航的另一种重要形式,它是指将导航菜单安放于页面左右两侧并进行自上而下排列的导航形式。一些大型购物网站如当当网、淘宝网等采用该导航形式进行商品分类,如图5.1.5所示。

WEB入门.九 导航菜单_导航_03垂直导航菜单形式多样,以下列举两种常见的垂直导航:箭头导航和提示信息导航。

5.1.1 箭头导航 箭头导航的主要优点在于导航的直观性,如图 5.1.6、图 5.1.7所示。

WEB入门.九 导航菜单_导航_04实现思路:

在 CSS 中,设置 span标签的宽度和高度为 0;加粗边框,设置上下边框的颜色为白色,左右边框的颜色为深色,实现代码如下。

5.1

代码语言:javascript复制

箭头效果

箭头导航由若干超链接构成,每个超链接文本前后添加绝对定位的 span标签,以设置左右箭头span标签在链接状态下隐藏、悬停状态下显示。

实现步骤:

(1) 制作导航菜单结构,代码如下:

(2) 编写span和a标签样式规则,代码如下:

上述代码中,链接要求设置为相对定位,为绝对定位的span标签提供定位参考,效果如图 5.1.8所示;否则,span标签就近寻找包含块为基准进行定位,如本例中超链接没有设置为相对定位,span标签将以body为基准定位

带提示信息导航

WEB入门.九 导航菜单_web_05#menu a:hover span.intro {

font-size:12px;

display:block;

position:absolute; /*绝对定位*/

left:150px;

top:0px;

padding:5px;

width:100px;

height:auto;

background-color:#eee;

color:#000;

border:1px dashed #234;

}

注意:提示框不能挤压其他元素,制作方式应与箭头类似;采用绝对定位,并保证脱离标准文档。

5.1 下拉式导航菜单 当页面版式比较紧凑时,页面设计适合使用下拉式导航菜单。该菜单形式充分利用现有空间并分类显示页面内容,如娃哈哈企业网等采用该菜单形式,如图 5.1.11所示。

5.1.1 垂直列表下拉导航 垂直列表下拉导航如图 5.1.12所示。ily:"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:"Times New Roman";mso-font-kerning:1.0pt;mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA'>所示。

WEB入门.九 导航菜单_前端技术_06实现思路:

垂直列表下拉导航采用无序列表嵌套定义的方式实现,嵌套ul作为二级子菜单;一级菜单中定义li为浮动元素且向左浮动,并保证在一条水平线上。

实现步骤:

(1) 定义垂直列表下拉导航结构,代码如下:

代码语言:javascript复制

(2) 定义一级菜单样式规则,代码如下:

.menu{

border:none;

font-family:verdana,geneva,arial,helvetica,sans-serif;

font-size:14px;

font-weight:bold;

color:8e8e8e;

}

.menu ul{

background:url(menu-bg.gif)top left repeat-x;

height:43px;

list-style:none;

}

.menu li{

float:left;

}

.menu li a{

color:#666666;

display:block;

font-weight:bold;

line-height:43px;

padding:0px25px;

text-align:center;

text-decoration:none;

}

.menu li a:hover{

color:#000000;

}

(3) 定义二级菜单样式规则,代码如下:

.menu li ul{

background:#e0e0e0;

border-left:2pxsolid #0079b2;

border-right:2pxsolid #0079b2;

border-bottom:2pxsolid #0079b2;

display:none;

height:auto;

position:absolute;

width:130px;

z-index:200;

}

.menu li:hover ul{

display:block;

}

.menu li li {

display:block;

width:130px;

}

.menu li ul a{

display:block;

font-size:12px;

text-align:left;

}

.menu li ul a:hover{

background:#949494;

color:#000000;

}

当鼠标悬停于一级菜单时,使用display:block;显示嵌套的无序列表。

(4) 设置当前选中菜单样式,代码如下:

.menu #current{

background:url(current-bg.gif)top left repeat-x;

color:#ffffff;

} 5.1.1 水平列表下拉导航 水平列表下拉导航

实现思路:

水平列表下拉导航在垂直列表导航菜单基础上实现,使用float:left;设置嵌套 li 为浮动元素,并保证所有li元素水平显示。

实现步骤:

(1) 水平列表下拉导航结构与垂直列表下拉导航菜单的结构相同。

(2) 定义嵌套ul 的样式规则,代码如下:

代码语言:javascript复制.menu li ul{

background:#e0e0e0;

border-left:2pxsolid #0079b2;

border-right:2pxsolid #0079b2;

border-bottom:2pxsolid #0079b2;

display:none;

height:auto;

position:absolute;/*绝对定位*/

width:225px;

z-index:200;

}

.menu li:hover ul{

display:block;/*块状显示*/

width:auto;/*宽度自适应*}

.menu li ul li {

float:left;

border-left:1pxsolid white;

line-height:1.5em;/*设置高度为1.5个字宽*/

}定义嵌套ul 的样式规则时,需要设置ul为绝对定位,并脱离标准文档流,否则一级菜单宽度将被改变

​本章总结​

在这一章里制作2个垂直方向的导航菜单。需要读者特别注意的有几个CSS基础知识和技巧。

(1) 相邻盒子的margin的垂直方向相遇的“塌陷”现象,水平方向则没有该现象。

(2) 在一些列盒子排列之后,如何对头尾盒子进行单独的样式设置,可以为它们单独设置类别,或者是伪类,但需要注意浏览器对伪类的支持情况。

(3) 通过粗边框的颜色设置可以产生出斜角效果,如果充分利用可以产生有趣的效果。

(4) 为了防止鼠标指针经过时造成边框的跳动,可以在通常状态添加与背景色相同的边框。

(5) 相对定位的含义是以自身原来所在的位置为基准进行偏移。

(6) “包含块”的定义方法,绝对定位是以包含块为基准进行偏移。

为了使某个盒子绝对定位,它的上一级元素可以设为相对定位,从而变成“包含块”。

任务实训部分

实训任务1:双竖线菜单 ​训练技能点​

Ø 利用border-left:和border-right制作双竖线菜单

​需求说明​

WEB入门.九 导航菜单_web_07​实现思路​

(1) 每个菜单的左右两个边都有一条竖线,当鼠标指针划过时,竖线由灰色变为黑色。

(2) 菜单文字变为红色。

​代码​

代码语言:javascript复制

双竖线菜单

实训任务2:双斜角横线菜单​训练技能点​

Ø 使用相对流动定位设置页面元素位置

Ø 使用background-position属性定位背景​​​

Ø 使用background-repeat属性设置平铺效果​​​

​需求说明​

双斜角横线菜单

​实现思路​

(1) 与上一个案例不同之处在于,这里为了使菜单的文字之间有一定空白,并且使文字在菜单项中垂直居中,没有采用padding来实现。

​关键代码:​

代码语言:javascript复制

双斜角横线菜单

实训任务3:立体菜单 ​训练技能点​

Ø 使用DIV+UL搭建垂直菜单框架

​需求说明​

立体菜单,效果如图��;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>使用background-position属性定位背景

Ø 使用background-repeat属性设置平铺效果​​​

​需求说明​

双斜角横线菜单

WEB入门.九 导航菜单_前端技术_08​实现思路​

(1) 使用DIV+CSS搭建页面框架。

(2) 使用DIV+UL搭建导航菜单框架。

(3) 使用

实现浮动清除。

​关键代码:​

代码语言:javascript复制

立体菜单

Home

ContactUs

Web Dev

WebDesign

Map

实训任务4:制作淘宝商城二级菜单​需求说明​

完成淘宝商城二级菜单/b>

Ø 使用background-repeat属性设置平铺效果​​​

​需求说明​

双斜角横线菜单

提示:

(1) 搭建二级菜单框架,代码如下:

代码语言:javascript复制

  • 珠宝饰品

  • 运动护卫
  • 手机数码
  • 家居生活
  • 家纺床品
  • 家电家具
  • 图书音像
  • 服饰鞋包
  • 丝质衣服
  • 绸缎衣服
  • 时尚经典
  • 黑色世界
  • 紫色蓝宝
  • (2) 定义subcontent的样式规则,参考代码如下:

    代码语言:javascript复制/*二级菜单样式*/

    .subcontent {

    font-size:12px;

    width:200px;

    display:none;

    position:absolute;/*绝对定位,是subcontent脱离标准文档流*/

    left:146px;

    top:-6px;

    background-color:#FFF ;/*灰色*/

    border:2pxsolid #e27687;/*红色*/

    z-index:200;

    }(3) 定义b标签的样式规则,覆盖subcontent的左边框,使subcontent产生箭头效果,代码如下:

    代码语言:javascript复制/*覆盖subcontent的左边框 使subcentent产生箭头效果*/

    .subcontent b{

    background:url(images/sc.png)no-repeat -620px -150px;

    display:block;

    height:17px;

    left:-7px;

    position:absolute;

    top:5px;

    width:18px;

    }(4) 定义鼠标悬停样式,鼠标悬停时显示subcontent,代码如下:

    #header #all-items .menu li:hover div{

    display:block;

    }

    相关推荐

    肘击:顶肘、挑肘、横肘和砸肘图文教学
    365打水账号怎么防止封号

    肘击:顶肘、挑肘、横肘和砸肘图文教学

    ⌛ 01-09 👁️ 3765
    dnf无尽贪食之主多久
    365bet官方下载

    dnf无尽贪食之主多久

    ⌛ 01-30 👁️ 1686
    太阳到底长啥模样?看看风云三号E星为它拍的高清照
    如何在 Word 中移动图片
    皇冠365bet体育投

    如何在 Word 中移动图片

    ⌛ 08-15 👁️ 6380
    巴西十大足球巨星:1位球王,5位世界足球先生,内马尔倒数第二
    向幻灯片添加边框
    皇冠365bet体育投

    向幻灯片添加边框

    ⌛ 07-22 👁️ 1064
    雨字旁的字有哪些
    皇冠365bet体育投

    雨字旁的字有哪些

    ⌛ 01-18 👁️ 6181
    在哪下载win7镜像文件进行重装系统?win7镜像文件iso下载地址
    详解角色基础攻击 66基础攻击的收益分析
    365bet官方下载

    详解角色基础攻击 66基础攻击的收益分析

    ⌛ 09-13 👁️ 3812