`
uule
  • 浏览: 6352569 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

Simple jQuery Dropdowns导航栏的CSS学习总结

    博客分类:
  • CSS
阅读更多

从网上下载了一个名为Simple JQuery Dropdowns的导航栏,原来是使用jQuery实现的,自己整理了一下,去掉了一些JS代码和CSS,尽量简化了一下,并加上自己学习时的注释,发出来大家共享!

自己整理后的代码放在附件中...

原代码和demo:http://css-tricks.com/simple-jquery-dropdowns/

效果:


html页面引入(也可不引入,后面讲):

<script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>   
<script type="text/javascript" language="javascript" src="js/jquery.dropdownPlain.js"></script>

 

具体代码:

<body>
<div id="page-wrap">	
	 <img src="images/title.png" alt="Simple jQuery Dropdowns" />	   	   
	 <p></p>     
	 <ul class="dropdown">
        	<li><a href="#">For Facilities</a>
        		<ul class="sub_menu">
        			 <li><a href="#">Artificial Turf</a></li>
        			 <li>
        				<a href="#">Batting Cages</a>
        				<ul>
        					<li><a href="#">Indoor</a></li>
        					<li><a href="#">Outdoor</a></li>
        				</ul>
        			 </li>
        			 <li><a href="#">Benches &amp; Bleachers</a></li>
        			 <li><a href="#">Communication Devices</a></li>
        			 <li><a href="#">Dugouts</a></li>
        			 <li><a href="#">Fencing &amp; Windscreen</a></li>
        			 <li><a href="#">Floor Protectors</a></li>
        			 <li><a href="#">Foul Poles</a></li>
        			 <li><a href="#">Netting</a></li>
        			 <li><a href="#">Outdoor Furniture &amp; Storage</a></li>
        			 <li><a href="#">Outdoor Signs</a></li>
        			 <li><a href="#">Padding</a></li>
        			 <li><a href="#">Scoreboards</a></li>
        			 <li><a href="#">Shade Structures</a></li>
        			 <li><a href="#"> - VIEW ALL - </a></li>
        		</ul>
        	</li>
		<li><a href="#">Field Maintenance</a>
		    ...
		</li>
		<li><a href="#">Game-Practice Equipment</a>
		    ...
		</li>
	</ul>
	</div>
</body>

 大家可以看到其整体结构如下:



 Css部分:

 

整体部分:

* 									{ margin: 0; padding: 0; }
body								{ font: 14px Helvetica, Sans-Serif; }   /* 全局文本字体*/
#page-wrap							{ width: 800px; margin: 25px auto; }    /* 此处若不设置margin,效果图会紧靠左上角*/
a									{ text-decoration: none; }
ul									{ list-style: none; }        /* ul不显示前面的实心圆*/
p                                   { margin: 15px 0; }  

 注意#page-wrap中margin的使用:


第一层:

/* 
	LEVEL ONE
*/
ul.dropdown                         { position: relative; }    /* 相对于外层的page-wrap ,也可不要*/
ul.dropdown li                      { font-weight: bold; float: left; background: #ccc; }  /* #ccc灰色*/

ul.dropdown li a                    { display: block; padding: 4px 8px; border-right: 1px solid #333;
	 								  color: black; }
ul.dropdown li:last-child a         { border-right: none; } /* Doesn't work in IE */

ul.dropdown li                           {position: relative; }
ul.dropdown li:hover                { background: #F3D673; color: black; }
												 /*  #F3D673就是显示的黄色*/

 说明:

/*
	Level one :
		li设置float:left : 为了使导航文字横排
		li a 设置padding:  为了是导航文字分开,否则其紧挨着
		li 设置position 为relative:  为了让子项相对于父项显示,而不是相对于窗口
*/

 

/*
 		1、li悬浮时,其下ul显示
 		   		li:hover > ul
 		2、注意left/top是ul参考上级,并且定义了position才有用
 		3、display放到   a 上才有效果,padding也放 a 上
 		4、注意边框是加载 li 上 
 		   		border:1px solid black;border-width:0 1 0 0;
 		5、注意第一层li的position为relative,不定义其下拉无法显示
 				后面各层position都是absolute
 	*/
 

 

第二层:

        第二层主要设置显示和位置:

/* 
	LEVEL TWO
*/
ul.dropdown ul 						{ width: 220px; visibility: hidden; position: absolute; top: 100%; left: 0; }
													/* 二级默认隐藏*/

ul.dropdown li:hover > ul 			{ visibility: visible; }   /* 鼠标悬浮在li上时,其子ul显示*/

ul.dropdown ul li 					{ font-weight: normal; background: #f6f6f6; color: #000; 
									  border-bottom: 1px solid #ccc; float: none; }
									  
                                    /* IE 6 & 7 Needs Inline Block */
ul.dropdown ul li a					{ border-right: none; width: 100%; display: inline-block; } 
 

第三层:

       设置位置即可,其悬浮样式在第一层最后已设置

 

/* 
	LEVEL THREE
*/
ul.dropdown ul ul 					{ left: 100%; top: 0; }

 上面的css配完后,其实效果就已经出来了,如下图,但是大家注意到没,上面第二层后面没有东西,乍一看,我们不知道这项还有下拉菜单,因此就需要使用jQuery为其添加一个箭头(其实不使用jQuery也可以,不过因为它方便点,呵呵)。


引入后,为包含第三层的第二层后面加入箭头:

$(function(){ 
    
    $("ul.dropdown li ul li:has(ul)").find("a:first").append(" &raquo; ");

});

 

具体就是这些,都是自己的理解,有误之处,欢迎大家拍砖。

 

  • 大小: 22.7 KB
  • 大小: 8.3 KB
  • 大小: 12.7 KB
  • 大小: 10.6 KB
  • 大小: 35.7 KB
分享到:
评论
2 楼 uule 2011-06-11  
我在IE8和火狐中都可以用啊。。。
1 楼 y14734817777 2011-06-04  
你写的代码只能在ie7+才能用,其他浏览都用不了。能不能给个兼容性好的代码

相关推荐

    30_个_jQuery_导航菜单插件和教程.doc

    ### 30个jQuery导航菜单插件和教程 在网页设计中,导航菜单的重要性不言而喻。它不仅是用户访问网站时的第一印象,更是引导用户浏览网站内容的关键路径。一个好的导航菜单应该具备清晰的结构、良好的用户体验以及...

    黑色动画仿flash交互jquery响应式个人简历手机web简历作品展示案例css3html5摄影图片商业企业精品.rar

    1. **bootstrap.min.css**:这是Bootstrap框架的压缩版CSS文件,提供了响应式布局和常见的用户界面组件,如导航栏、按钮、表格等。 2. **animate.css**:一个包含各种动画效果的库,用于为网页元素添加动态效果,...

    jquery左侧树形菜单

    总结,创建“jquery左侧树形菜单”涉及到HTML结构的构建、CSS样式的应用、jQuery插件的使用以及事件处理。`SimpleTree1.3`插件提供了一个便捷的方式,帮助开发者快速实现具有交互性的左侧树形菜单,而无需从零开始...

    jQuery分页demo实现

    首先,我们需要创建一个基本的HTML结构,包括分页导航栏和数据展示区。例如: ```html &lt;div id="pagination"&gt;&lt;/div&gt; &lt;!-- 数据列表 --&gt; ``` 3. **CSS样式** 为了使分页组件美观,我们可以添加一些简单的...

    html5 css3超多款竖直菜单导航特效.rar

    html5 css3超多款竖直菜单导航特效,Simple Effects for Drop-Down Lists,引入了jquery插件来辅助实现,效果果真不错。一共包括了6款动画方式不同的菜单,有左右滑入的菜单,有排列成半圆形的菜单,还有即时动画...

    jquery mobile RSS阅读器demo

    jQuery Mobile还实现了页面导航和Ajax加载,使得页面间的切换流畅而无缝。 **RSS技术简介** RSS是一种XML格式,用于发布和订阅网站内容,如新闻、博客文章或播客。RSS feed包含了网站的最新更新,订阅者可以通过...

    jQuery zTree 树型js插件

    zTree不仅适用于网站导航、文件目录展示,还可以应用于组织结构图、权限管理、菜单栏、多级选择等场景。配合其他前端框架(如Bootstrap、AngularJS等)也能轻松实现复杂功能。 总结来说,jQuery zTree是一个强大而...

    使用jquery实现的分页

    jQuery 社区提供了许多成熟的分页插件,如 `jQuery Paginate`、`jQuery Simple Pagination` 和 `DataTables` 等。这些插件通常提供自定义样式、事件处理等功能,使得分页实现更为简单。 3. **局部刷新**: 局部...

    jQuery实现页面级分页

    在实际应用中,可以使用现有的jQuery分页插件,如jQuery Pagination Plugin、jQuery Simple Pagination等,它们提供了预设的样式和功能,简化了开发过程。以`PageTable`为例,这可能是一个包含分页功能的表格插件,...

    来自国外的30个基于jquery的Web下拉菜单

    5. **A Different Top Navigation**:为顶部导航栏提供创新设计,使菜单更具吸引力。 6. **Simple jQuery Dropdowns**:适合初学者的简单jQuery下拉菜单实现,易于理解和定制。 7. **Sexy Drop Down Menu with ...

    jquery分页程序,js分页代码

    4. **分页插件**:jQuery社区提供了许多成熟的分页插件,如jQuery Paginate、jQuery Simple Pagination等,它们提供丰富的配置选项和预定义样式,大大减少了开发工作量。 **实例分析** 在提供的"jquery分页"压缩包...

    分页插件jquery

    - **初始化分页**:在jQuery的`$(document).ready()`函数中调用插件的初始化方法,指定分页容器、数据源、每页条数等参数。 ```javascript $(document).ready(function() { $("#pagination").pagination({ ...

    简洁simple个人博客模板下载是一款基于bootstrap实现的博客网站模板下载.rar

    同时,Bootstrap还提供了丰富的预定义组件,如导航栏、按钮、表单、模态框等,大大简化了开发流程。 三、HTML结构 模板中的HTML文件如index.html、blog.html等,遵循了HTML5的标准,结构清晰,语义明确。它们通常...

    simple-navbar:结果共享使导航栏对于webstatic变得简单

    3. **JavaScript动态生成**:通过JavaScript(例如jQuery或Vanilla JS)动态创建和插入导航栏元素,可以存储导航数据在JSON格式的文件中,读取后生成HTML结构,这种方法尤其适用于单页应用(SPA)。 4. **服务器端...

    30款超实用的JQUERY插件大合集.docx

    1. pagePiling.js:用于创建堆叠式的网页布局,使页面看起来像多页幻灯片,提供顶部导航栏供用户翻页。 2. gridscrolling.js:帮助将页面内容组织成网格布局,并通过光标导航,提升用户体验。 3. Animsition:提供...

    Bo-Blog Simple Summer

    5. **布局设计**:简洁的布局设计强调内容的可读性和易用性,可能会包含清晰的导航栏、突出的特色文章展示、以及精心安排的侧边栏小工具。 6. **图片和图形**:夏季主题可能包含与海滩、阳光、冰镇饮料等相关图形,...

    黑色全屏网站设计设计师展示企业工作室ft5bootstrap响应式扁平化个人主页博客blog项目作品css3动画.rar

    在这个项目中,`bootstrap.css` 文件是Bootstrap的核心样式表,包含了栅格系统、表单、按钮、导航等元素的样式。 2. **响应式设计**:响应式设计是使网站能够适应不同设备屏幕大小的技术,确保在手机、平板电脑和...

    简洁simple景点或项目展示页bootstrap模板_简洁 景点 展示 简单 项目 bootstrap 旅游 景区 .rar

    4. **导航栏**:为了引导用户浏览网站,模板通常会包含一个清晰的导航栏,可能包含首页、景点介绍、联系我们等链接。 5. **卡片组件**:Bootstrap的卡片组件可以用来展示景点或项目的简介和图片,它们是可定制的、...

Global site tag (gtag.js) - Google Analytics