网站导航实现方法

1.CSS实现

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6     <style type="text/css">
 7     *{margin:0;padding:0;font-size:12px;}
 8     body{behavior:url(csshover.htc);}
 9     .nav{background-color:#eee;width:600px;height:40px;margin:0 auto;}
10     ul{list-style:none;}
11     ul li{float:left;line-height:40px;text-align:center;position:relative;}
12     a{text-decoration:none;color:#000;padding:0 30px;height:40px;}
13     a:hover{color:#fff;background-color:#ccc;display:block;}
14     ul li ul li{float:none;background-color:#eee;margin-top:2px;}
15     ul li ul{position:absolute;left:0px;top:40px;display:none;}
16     ul li ul a:hover{background-color:blue;}
17     ul li:hover ul{display:block;}
18     </style>
19 </head>
20 <body>
21     <div class="nav">
22         <ul>
23             <li><a href="">这是首页</a>
24                 <ul>
25                     <li><a href="">PHP</a></li>
26                     <li><a href="">Javascript</a></li>
27                     <li><a href="">jQuery</a></li>
28                 </ul>
29             </li>
30             <li><a href="">课程大厅</a></li>
31             <li><a href="">学习中心</a>
32                 <ul>
33                     <li><a href="">PHP</a></li>
34                     <li><a href="">Javascript</a></li>
35                     <li><a href="">jQuery</a></li>
36                 </ul>
37             </li>
38             <li><a href="">经典案例</a></li>
39             <li><a href="">关于我们</a></li>
40         </ul>
41     </div>
42 </body>
43 </html>

特点:代码简洁明了。如需实际运用,建议把css文件单独分离,下面来加强一下ie的兼容性

复制以下代码,改名为  csshover.htc 放入文件目录

 1 <attach event="ondocumentready" handler="parseStylesheets"/>
 2 <script language="JScript">
 3 var currentSheet, doc = window.document, activators = {
 4 onhover:{on:‘onmouseover‘, off:‘onmouseout‘},
 5 onactive:{on:‘onmousedown‘, off:‘onmouseup‘}
 6 };
 7 function parseStylesheets(){
 8 var sheets = doc.styleSheets, l = sheets.length;
 9 for(var i = 0; i < l; i++){
10 parseStylesheet(sheets[i]);
11 };
12 };
13 function parseStylesheet(sheet){
14 if(sheet.imports){
15 try{
16 var imports = sheet.imports, l = imports.length;
17 for(var i = 0; i < l; i++){
18 parseStylesheet(sheet.imports[i]);
19 };
20 }catch(securityException){};
21 };
22 try{
23 var rules = (currentSheet = sheet).rules, l = rules.length;
24 for(var j = 0; j < l; j++){
25 parseCSSRule(rules[j]);
26 };
27 }catch(securityException){};
28 };
29 function parseCSSRule(rule){
30 var select = rule.selectorText, style = rule.style.cssText;
31 if(!(/(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i).test(select) || !style) return;
32 var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, ‘on$1‘);
33 var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, ‘.$2‘ + pseudo);
34 var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1];
35 var affected = select.replace(/:hover.*$/, ‘‘);
36 var elements = getElementsBySelect(affected);
37 currentSheet.addRule(newSelect, style);
38 for(var i = 0; i < elements.length; i++){
39 new HoverElement(elements[i], className, activators[pseudo]);
40 };
41 };
42 function HoverElement(node, className, events){
43 if(!node.hovers) node.hovers = {};
44 if(node.hovers[className]) return;
45 node.hovers[className] = true;
46 node.attachEvent(events.on, function(){
47 node.className += ‘ ‘ + className;
48 });
49 node.attachEvent(events.off, function(){
50 node.className = node.className.replace(new RegExp(‘\\s+‘+className, ‘g‘),‘‘);
51 });
52 };
53 function getElementsBySelect(rule){
54 var parts, nodes = [doc];
55 parts = rule.split(‘ ‘);
56 for(var i = 0; i < parts.length; i++){
57 nodes = getSelectedNodes(parts[i], nodes);
58 };
59 return nodes;
60 };
61 function getSelectedNodes(select, elements){
62 var result, node, nodes = [];
63 var classname = (/\.([a-z0-9_-]+)/i).exec(select);
64 var identify = (/\#([a-z0-9_-]+)/i).exec(select);
65 var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ‘‘);
66 for(var i = 0; i < elements.length; i++){
67 result = tagName ? elements[i].all.tags(tagName) : elements[i].all;
68 for(var j = 0; j < result.length; j++){
69 node = result[j];
70 if((identify && node.id != identify[1]) || (classname && !(new RegExp(‘\\b‘ + classname[1] + ‘\\b‘).exec(node.className)))) continue;
71 nodes[nodes.length] = node;
72 };
73 };
74 return nodes;
75 };
76 </script> 

具体实现原理自行百度。

2.Jquery实现

使用的jQuery版本为1.7.2.min.js,可以去各大CDN平台找到。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6     <style type="text/css">
 7     *{margin:0;padding:0;font-size:12px;}/*加强兼容,去除内边间距兼容*/
 8     .nav{background-color:#eee;width:600px;height:40px;margin:0 auto;}/*div class="nav"背景上色,制定宽高并居中*/
 9     ul{list-style:none;}/*去除小圆点*/
10     ul li{float:left;line-height:40px;text-align:center;position:relative;width:108px;}
11     a{text-decoration:none;color:#000;padding:0 30px;height:40px;}
12     a:hover{color:#fff;background-color:#ccc;display:block;}
13     ul li ul li{float:none;background-color:#eee;margin-top:2px;}
14     ul li ul{position:absolute;left:0px;top:40px;display:none;}
15     ul li ul a:hover{background-color:blue;}
16     ul li ul li ul{position:absolute;left:108px;top:0px;display:none;}
17     /*    ul li:hover ul{display:block;}*/
18     </style>
19     <script type="text/javascript" src="jquery.min.js"></script>
20     <script type="text/javascript">
21     $(document).ready(function(){
22         $(".navmenu").mouseover(function(){
23             $(this).children("ul").show();
24         });
25         $(".navmenu").mouseout(function(){
26             $(this).children("ul").hide();
27         });
28     });
29
30     </script>
31 </head>
32 <body>
33     <div class="nav">
34         <ul>
35             <li class="navmenu"><a href="">这是首页</a>
36                 <ul>
37                     <li><a href="">PHP</a></li>
38                     <li><a href="">Javascript</a></li>
39                     <li class="navmenu"><a href="">jQuery</a>
40                         <ul>
41                             <li><a href="">PHP</a></li>
42                             <li><a href="">Javascript</a></li>
43                             <li><a href="">jQuery</a></li>
44                         </ul>
45                     </li>
46                 </ul>
47             </li>
48             <li><a href="">课程大厅</a></li>
49             <li class="navmenu"><a href="">学习中心</a>
50                 <ul>
51                     <li><a href="">PHP</a></li>
52                     <li><a href="">Javascript</a></li>
53                     <li><a href="">jQuery</a></li>
54                 </ul>
55             </li>
56             <li><a href="">经典案例</a></li>
57             <li><a href="">关于我们</a></li>
58         </ul>
59     </div>
60 </body>
61 </html>

3.js实现

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6     <style type="text/css">
 7     *{margin:0;padding:0;font-size:12px;}
 8     .nav{background-color:#eee;width:600px;height:40px;margin:0 auto;}
 9     ul{list-style:none;}
10     ul li{float:left;line-height:40px;text-align:center;position:relative;}
11     a{text-decoration:none;color:#000;padding:0 30px;height:40px;}
12     a:hover{color:#fff;background-color:#ccc;display:block;}
13     ul li ul li{float:none;background-color:#eee;margin-top:2px;}
14     ul li ul{position:absolute;left:0px;top:40px;display:none;}
15     /*ul li ul a:hover{background-color:blue;}*/
16     /*ul li:hover ul{display:block;}*/
17     </style>
18     <script type="text/javascript">
19     function showsubmenu(li){
20         var submenu=li.getElementsByTagName("ul")[0];
21         submenu.style.display="block";
22     }
23     function hidesubmenu(li){
24         var submenu=li.getElementsByTagName("ul")[0];
25         submenu.style.display="none";
26     }
27     </script>
28 </head>
29 <body>
30     <div class="nav">
31         <ul>
32             <li onmouseover="showsubmenu(this)" onmouseout="hidesubmenu(this)"><a href="">这是首页</a>
33                 <ul>
34                     <li><a href="">PHP</a></li>
35                     <li><a href="">Javascript</a></li>
36                     <li><a href="">jQuery</a></li>
37                 </ul>
38             </li>
39             <li><a href="">课程大厅</a></li>
40             <li onmouseover="showsubmenu(this)" onmouseout="hidesubmenu(this)"><a href="">学习中心</a>
41                 <ul>
42                     <li><a href="">PHP</a></li>
43                     <li><a href="">Javascript</a></li>
44                     <li><a href="">jQuery</a></li>
45                 </ul>
46             </li>
47             <li><a href="">经典案例</a></li>
48             <li><a href="">关于我们</a></li>
49         </ul>
50     </div>
51 </body>
52 </html>

特点:直接对属性值操作,代码比较简练。

如有纰漏,希望指出

时间: 2024-08-27 13:56:54

网站导航实现方法的相关文章

网站导航标题栏下面有一小色块跟随鼠标移动特效

可能很多人看标题不是很明白这个特效,下面简述一下这个特效: 看到很多网站上的导航栏下面有一个小的色块,一开始小色块是处在第一个标题下面的,当鼠标移动到另一个标题时,这个小色块就会悠悠地跑到对应的标题下面. 这里截图只能看到色块是移动了,但显示不出色块是从Home下面平滑移动到Product下面的.反正就是这个意思了.大家看我上面的解释就知道了,不行看下面代码或者把代码拷贝运行一下就看到效果了 这个特效很好玩,正好朋友写了这方面的特效代码,我拿过来看了下,这才发现其实很简单,就是几个jquery封

ASP.net中网站访问量统计方法代码(在线人数,本月访问,本日访问,访问流量,累计访问)

一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间 (IP_DateTime),些表的信息本人只保存一天的信息,如果要统计每个月的信息则要保存一个月.因为我不太懂对数据日志的操作,所以创建此表,所 以说我笨吧,哈哈. 二.在Global.asax中获取用户信息 在Global.asax的Session_Start即新会话启用时获取有关的信息,同时在这里实现在线人数.访问总人数的增量统计

为什么要使用ul li布局网站导航条?使用ul li布局网站网页导航必要性

会布局的都知道网站导航条布局非常重要,可能一个导航条最终布局效果有时可以使用ul li列表标签布局,有时可以不用ul li布局,而是直接一个div盒子里直接放锚文本超链接的栏目名称,也能实现,看下图. 假如要布局出这样简单导航条效果 比如以下代码: 1.可以使用Ul li布局导航条 <ul> <li><a href="http://www.divcss5.com/">网站首页</a> <li><a href="

如何对网站导航优化以及标题的编写

如何优化网站导航,是每个 seoer拿到一个网站必须要考虑的问题,也是判断 这个网站seo水平如何要参考的重要指标.今天 一品自学网就着重讲下网站导航的优化方法以及文章标题的写法. 网站导航指的是什么呢? 一般说来,网站头部的一级目录,网站的栏目.文章分类.包括"您当前位置"等等都可以称之为网站导航. 网站导航的意义: 告诉用户我们网站的功能和内容分类. 告诉用户你们目前所在网站的位置. 如何对网站导航进行SEO优化? 可以在首页底部添加一些关键词,指向对应页面. 在所属导航块的文章内

网站导航栏如何实现动态效果

导航栏是每一个网站都要有的,那么对于一般的导航栏制作,相信大家都会,而且也不会遇到什么麻烦,但是如何才能让网站导航栏实现动态效果估计这会难倒很多技术人员,那么下面就来为大家分析解答一下. Html代码: <html><head><title>导航演示</title><meta charset="UTF-8"><link rel="stylesheet" href="nav.css"

如何 阻止员工 访问 找工作网站 变态的方法 也适合禁用其它网站

在小公司没有防火墙的情况下, 如何 阻止员工 访问 找工作网站 变态的方法 也适合禁用其它网站 如下图: 打开 C:\windows\system32\drivers\etc\ hosts 文件,用记事本打开 第一行为默认不能动 第二行为添加.要再添加其它网站的话,下一行开始,后面localhost可以改为自已公司的网站,这样的话,当访问招聘网站时,就会自动转到自已公司的网站了. 本人在我的电脑上永久设定了,打开www.zhaopin.com,结果如下:

帝国CMS文章字母导航的方法

大致明白的字母导航的方法:进入后台>管理数据表>管理字段(想在那个模型里面增加字母模型,就选哪个里面的"管理字段")>点击左上角的增加字段>字段名必须写"infozm",字段标识写"字母导航",下面的可以都是默认,然后提交.上面只是完成了一部分,接着点击>管理数据表>管理系统模型>修改>找到刚才添加的字段(勾选"录入项","可增加","可修改&quo

jquery单页网站导航插件One Page Nav

这是一个轻量级的jQuery的单页网站导航插件.增加了单击后平滑滚动导航和当你浏览不同的部分时自动选择正确的导航项. changeHash: false, 改变当用户单击导航,就改变changeHash选项为true. scrollSpeed: 750, scrollThreshold: 0.5, filter: '', easing: 'swing', begin: function() { //I get fired when the animation is starting }, end

黑色产业链-最明智的网站链接隐藏方法

黑色产业链可以称为隐藏链.顾名思义.它没有在链接显示,该搜索引擎可以看到链接,黑色短链优势,能够迅速提高排名. 黑色产业链属于外部链接,可以点添加网站链接地址PR值.这是一个受欢迎的网站权重.这就是为什么有些SEOer我喜欢买黑链的原因.以下我们就谈一谈挂黑链的几种方法. 第一种 CSS.DIV隐藏链接代码 黑链代码1.<div style="position: absolute; top: -999px; left: -999px;"> <a href="