垂直导航主要用于网站的侧边栏导航,使用侧边栏的好处是可以节约空间。因此,一些内容多,而又喜欢简约的网站,常常以侧边栏的方式进行展示。

默认情况下,列表及列表项 li 元素都是块级元素,每个列表项后独占一行。因此,使用无序列表创建垂直导航就非常方便。

首先,创建一个无序列表来包裹导航链接:

  1. <ul class = "verticalnav">
  2.     <li><a href="#">公司简介</a></li>
  3.     <li><a href="#">产品中心</a></li>
  4.     <li><a class="current" href="#">工程案例</a></li>
  5.     <li><a href="#">新闻动态</a></li>
  6.     <li><a href="#">联系我们</a></li>
  7. </ul>

这时预览,发现列表的内容都挤在一起,前面还有一个小圆点。并且,链接文本以蓝色显示,还带有下划线。如图 6‑12 所示:

图6-12 列表的默认样式

这个小圆点是列表的默认项目符号,它会占据列表的空间。因此,通常需要重置列表的默认样式,将外边距、内边距设置为 0,并去掉默认的项目符号。当然,这些操作一般都是在全局 reset 中进行,如果你使用全局reset,这个步骤就不必做了。

  1. ul {
  2.      margin: 0;
  3.      padding: 0;
  4.      list-style: none;
  5. }

接下来,通过列表元素的宽度,来控制整个导航所占用的水平空间。

  1. .verticalnav {
  2.     width: 120px;
  3. }

再来设置导航链接的样式。在介绍按钮式链接时,曾经使用 padding 来增加链接的点击区域。但是,如果各个链接中的文本个数不同,则每个链接的宽度也不同,整个垂直导航就会参差不齐。

如果把容器设置为固定宽度,再把链接的 display 属性设置为 block,让它自动填满整个容器。这样一来,所有链接就具有相同的宽度,并且在链接区域的任何位置都能激活链接,一举两得。

同时,设置链接的高度,并通过 text-align 和 line-height 属性,让链接文本在水平方向和垂直方向居中显示。再根据上下文环境,为链接设置合适的颜色和字体。最后,去掉链接的默认下划线。

  1. .verticalnav a {
  2.     display: block;
  3.     height: 32px;
  4.     line-height: 32px;
  5.     text-align: center;
  6.     color: #666;
  7.     font-size: 12px;
  8.     text-decoration: none;
  9. }

为了提醒用户,当鼠标悬停时,自动改变链接文本的颜色。另外,为了突显当前链接,定义一个 current 类,并通过不同的颜色和左边框进行标识,让用户一目了然。

  1. .verticalnav li a:hover, 
  2. .verticalnav li a:focus {
  3.     color: #ff5f3e;
  4. }
  5. .verticalnav li a.current {
  6.     color: #ff5f3e;
  7.     border-left: 4px solid #ff5f3e;
  8. }

好了,一个简约而漂亮的垂直导航就制作完成了。运行结果如图 6‑13 所示:

图6-13 垂直导航

关于作者

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

CSS 制作垂直导航相关推荐

  1. CSS 制作手风琴导航

    在垂直导航中,如果存在多个分级,常常使用手风琴导航,它会以手风琴方式展开和折叠,来节约空间. 简单的说,手风琴导航就是垂直导航的层层嵌套,需要多少级,就嵌套多少层.这里就以两级导航为例,来介绍手风琴导 ...

  2. CSS制作垂直口风琴2

    <!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...

  3. CSS制作的导航菜单向上箭头

    使用纯CSS技术制作导航菜单上的向上箭头图标,不使用图片,用CSS实现,挑战自己的CSS布局水平,最终效果自己满意,如果您对此感兴趣的话,就要好好研究一下CSS代码啦. <!DOCTYPE ht ...

  4. css作个课程导航,CSS 制作网页导航条(下)

    上节课我们将导航条做成了下面的效果 但是此时的导航条还没有链接,还不能点击,这节课我们就要做一个完整的导航条 [第四步] 我们需要将上面的导航条做以下几个修改 1)给上面的导航加上链接: 2)链接文字 ...

  5. HTML+CSS实战(一)——导航条菜单的制作

    一.垂直导航菜单的制作 1.基本的样式清除: *{margin:0;padding:0} 2.无序列表圆点去除: ul{list-style:none} 3.下划线去除: a{text-decorat ...

  6. css制作动态按钮导航栏,巧妙使用checkbox制作纯css动态导航栏

    前提:很多时候.我们的网页都需要一个垂直的导航栏.可以分类.有分类.自然就有展开.关闭的功能.你还在使用jquery操作dom来制作吗?那你就out了! 方案:使用checkbox 的 checked ...

  7. css制作漂亮彩带导航条菜单

    点击这里查看效果: http://keleyi.com/keleyi/phtml/divcss/17.htm 效果图: 以下是源代码: 1 <!DOCTYPE html PUBLIC " ...

  8. html制作课程导航页面,学成在线页面制作(HTML+CSS部分)(顶部+轮播图部分)...

    学成在线页面制作(HTML+CSS部分)(顶部+轮播图部分) 成品截图 前期准备素材 一.项目页面PSD源文件 二.前期准备工作 三.CSS属性书写顺序 四.布局分析 五.布局流程 开始页面制作 头部 ...

  9. CSS实现垂直/水平导航栏

    文章目录 一级基本导航栏 怎么显示?导航栏 = 链接列表 垂直导航栏 水平导航栏 二级导航栏 垂直二级 水平二级 动画效果 考虑导航栏位置和导航栏下方内容位置 行内元素和块级元素的具体区别是什么?in ...

最新文章

  1. Java设计模式——迭代器模式
  2. 学好英语要从多方面入手,语法就是一个方面,本篇经验将从大的方面宏观地谈谈如何学好英语语法...
  3. 图形验证码校验php,ThinkPHP实现生成和校验验证码功能
  4. [js] axios为什么可以使用对象和函数两种方式调用?是如何实现的?
  5. 购物车程序二(模拟了用户登录,限次数三次)
  6. github客户端与git使用指南
  7. 工业机器人的算法概述
  8. 计算机科学与技术专业自我小结,最新计算机科学与技术专业毕业自我个人小结优秀范文原创...
  9. 选个关注热度上升的大数据工具学习下吧
  10. 使用服务器出现error:cannot connect to X server
  11. C++的继承和派生(一)父类和派生类(子类)的介绍以及派生类的访问控制
  12. 3600000毫秒等于多少小时_将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?...
  13. PowerBUS 双总线收发器
  14. 湖南计算机研究生学校排名,湖南全部128所大学排名,分为9个档次,你理想的大学排在第几档?...
  15. php隐形字符#65279;
  16. 【软考——系统架构师】架构、系分、软设的区别和联系
  17. 【D1n910】正则表达式入门(四)
  18. Corel MyDVD Pro for Mac(专业DVD制作软件)
  19. Cisco Cius调试手记
  20. 古代的医生(罗大伦)--总结

热门文章

  1. 控制窗口不能拖拉出主窗口 Dialog And Window
  2. 读书笔记之:高质量程序设计指南——C++/C
  3. SecureCRT 7.3.4 安装以及破解
  4. java对mysql的简单操作的综合运用——注册系统
  5. Python 读入Excel表时如何判空NaN
  6. 卷积神经网络中的池化是什么意思
  7. jmeter ---实战(详解)
  8. LeetCode448-找到所有数组中消失的数字(原地数组)
  9. 一个技术人员必须考虑的问题:转型
  10. 试着用React写项目-利用react-router解决跳转路由等问题(二)