本案例将在8.5节的基础上来制作会跳起的多彩菜单,效果如图1所示。在平常状态时,各菜单项的高度都同样,而当鼠标指针经过某一个菜单项的时候,该菜单项就会跳起,高于其他菜单项。这个效果非常有趣,能够吸引访问者的目光。 该实例文件位于网页学习网CSS教程资源的“第8章\06\rounded-navi.htm”。
注意:本案例的制作完全基于8.5节的最终成果进行,因此请读者一定先做出8.5节的效果,再学习本案例。 一、实现跳起效果 这里来实现跳起的效果,基于8.5节的制作过程,自然会想到,这里让某个菜单项跳起来,就是让菜单项在鼠标指针经过时,使菜单文字所在的p段落变高一些,那么只要给它的padding-bottom增加若干像素就可以了。 先来试验一下,在“.item a:hover p”中增加对padding-bottom的设置,代码如下。 折叠展开CSS 代码复制内容到剪贴板
在浏览器中看到如图效果,并不是希望的效果,会错误的跳起。 分析:这是由于每个菜单性都是向左浮动排列的,这些盒子都是根据上边缘对齐的,如果某个菜单项中的p段落变高了,它自然就会向下延伸,而不是向上延伸。网页学习网CSS教程资源中的"第8章\06\wrong-method.htm"文件是这种错误效果的页面,请读者参考。 解决办法是实现为每一个菜单项的上面增加一个预留的高度空间,然后在鼠标指针经过某一个菜单项的时候,使该菜单项的预留空间高度变为0,同时增加下面的p段落的高度。这样,如果计算精确,就可以实现跳起的效果了。 具体的做法如下。 ① 首先改造HTML。在每一个li中,增加一个div.这里把类别名设为“pad”,即垫子的意思,代码如下。这里的代码只抄录了一个Ii的代码,其余3个都是相同的。 折叠展开XML/HTML 代码复制内容到剪贴板
② 对这个“垫子”div设置CSS样式,代码如下。 折叠展开CSS 代码复制内容到剪贴板
上面代码将“垫子”设置为10像素高,边框为0,背景色为透明,这样这个“垫子”看起来就好像不存在一样。lodidance.com ③ 分别设置“垫子”和p段落在鼠标指针经过时的样式,代码如下。 折叠展开CSS 代码复制内容到剪贴板
在鼠标指针经过时,“垫子”的高度变为0,菜单文字所在的p段落的padding-bottom变为12像素。注意这里的12像素是因为原本p段落的padding-bottom是2像素,这里加上垫子所占的10像素,因此一共12像素。此时在浏览器巾的效果如图1所示,已经可以正确地实现“跳起”的效果了。 网页学习网CSS教程资源中的“第8章\06\popup-navi.hLm”文件是制作到这时的文件,请读者参考。 二、实现多彩效果 为了实现各个菜单项的不同颜色,仍需要对HTML进行改造。为了使各个菜单的颜色不同,可以为每种所需颜色设置一个类别,分别分配给相应的菜单项。 ① 若想让第1个菜单项以橘黄色显示,就要在li的类别声明中增加一个orange类别名。注意和前而原先的item类别名之间留一个空格,代码如下:lodidance.com 折叠展开XML/HTML 代码复制内容到剪贴板
② 其余3个菜单项也同样处理,颜色分别为黄色、绿色和蓝色,相应增加的类别名称分别为yellow、green和blue。 ③ 接下来对增加的这4个类别的css样式进行设置。平常状态颜色设置的代码如下。这里将文字所在的p段落以及row2、row3和row4这4个对象的背景色设置为橘黄色(#fa0)。为什么不设置row1呢?因为row1自有一条黑色边框,所以不需要设置背景色。 折叠展开CSS 代码复制内容到剪贴板
④ 设置鼠标指针经过时的颜色,代码如下。 折叠展开CSS 代码复制内容到剪贴板
⑤ 其余3个菜单项做相同处理,黄、绿、蓝3种颜色使用的颜色值依次为#ff0、#0e0和#0cf,读者可以随意选择自己喜欢的颜色。 分析:由于普通状态与跳起状态的背景色相同,使用的都是比较浅的颜色,因此在鼠标指针经过时,文字的颜色就不必变成白色了,否则文字会不容易看清楚。 ⑥ 在“.item a:hover p”中,将8.5节对文字颜色的设置删除,就会在鼠标指针经过时仍使用黑色文字。这时在浏览器中的效果如图1所示。 网页学习网CSS教程资源中的“第8章\06\colorful-navi.htm”文件是制作到这时的文件,请读者参考。这个例子比较复杂,在下一小节中将给出本案例的完整的代码,供读者逐行分析理解。 三、本案例完整代码 在进行比较复杂的CSS设计时,可以准备一张草稿纸,经常画一画草图,计算准确是很重要的。本案例的完整代码如下。 折叠展开XML/HTML 代码复制内容到剪贴板
四、实现向下弹出效果 菜单向上弹出的效果已经比较完善了,最后再给读者提出一个思考题。如果要制作一个向下的弹出菜单,制作方法和上面有哪些相同之处,又有哪些不同之处? 倒转每个菜单项,实际上只需要把row1—row4这4个div移动到p段落的下面就可以了,然后把p段落的下边框设置为0,而上边框设置为1像素,就可实现了。 而要实现向下弹起,就更简单了,不需要使用“垫子”div,直接把p段落的paddjng-top值增加就可以实现跳起了。 这里只列出修改后的HTML代码,至于CSS的修改方法,相信读者完全可以自己解决了。HTML代码如下。 折叠展开XML/HTML 代码复制内容到剪贴板
网页学习网CSS教程资源中的“第8章\06\popdown-navi.htm”文件是制作完成的“向下弹出”效果的文件,请读者参考。 本章重点 在本章中,实现了6个水平方向的菜单,主要需要掌握以下基本要点。 (1) 设置浮动方式,以及是否适应宽度的设置方法。 (2) 不使用图像,实现斜角和圆角的方法。 (3) 使用背景图片的滑动门技术。 (4) 理解本章案例中的“钩子”和“垫子”的用途。 |
编辑:网页学习网 |
本文地址:http://www.lodidance.com/css/jc/727.html |
8.6 会跳起的多彩菜单
时间: 2024-10-24 06:15:00
8.6 会跳起的多彩菜单的相关文章
9.3 制作下拉菜单(2)
一.对子菜单项(dd)进行设置 设置子菜单项的样式分为3步. ① 首先对每个子菜单项,也就是dd元素进行常规设置,包括文字颜色.背景色等,代码如下. 折叠展开CSS 代码复制内容到剪贴板 /* 设置菜单项的dd */ #menu li dd { margin:0; padding:0; color: #fff; background: #47a; } ② 为了使最下面的dd的下端和dI的下侧padding之间有一条暗红色分割线,设置1像素的下边框,代码如下.它在视觉上与上面的分割线相呼应,同时也
从零开始学android<;GridView网格视图.二十八.>;
GridView组件是以网格的形式显示所有的组件,例如:在制作相册的时候,所有的图片都会以相同大小显示在不同的格子之中,就可以依靠此组件完成,此组件的继承结构如下所示: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.AdapterView<T extends android.widget.Adapter> ? android.widget.AbsListView ? android.
jQuery制作一个多彩下拉菜单按钮
最终效果图: html代码: 1 <div id="list"> 2 <div id="btn"> 3 <div class="icon"> 4 <span></span> 5 <span></span> 6 <span></span> 7 </div> 8 </div> 9 <ul> 10 <li
Colorful(Folders星语多彩文件夹) v1.7绿色版
软件名称:星语多彩文件夹ColorfulFolders v1.7绿色版软件类别:国产软件运行环境:WinXP/2003/Vista/Win7/Win2008软件语言:简体中文授权方式:免费版软件大小:647 KB软件等级:整理时间:2012-01-03 17:10:44插件情况:软件有弹出窗口! 该软件经过四种杀毒软件检测,结果如下:卡巴检测:安全 瑞星检测:安全 江民检测:安全 麦咖啡检测:安全 软件截图: 软件简介:星语多彩文件夹(ColorfulFolders) 可以帮助你轻松改变任何文件
设计多彩下拉列表样式
多彩下拉列表样式: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&quo
免费css3技巧:时间线, Nexus 7, 滑动和菜单.
1.使用css3和jQuery的作品时间线 非常感谢tutorizlzine,在这篇教程中,我们可以看到一个由jQuery插件展示的作品事件的时间线.你可以添加很多种媒体类型,包括文章.视屏和地图等 In this great tutorial thanks to Tutorialzine we look at Timeline, a jQuery plugin specialized in showing a chronological series of events. You can em
树形菜单 jsTree 使用方法
jsTree版本:3.0.4 在ASP.NET MVC中使用jsTree Model: public class Department { public int Id { get; set; } public string Name { get; set; } public int PId { get; set; } } 数据库: Controller: jsTree既可以一次性把所有节点都加载到客户端,也可以只加载一层,点击节点后再去服务端获取下层节点.对于小的菜单可以一次性加载完,如果节点很
微信 小程序布局 水平菜单
<!-- 菜单列表部分 --> <view class="wear-menu"> <view class='menu-box' wx:key="menu" wx:for="{{menuList}}" wx:for-index="index"> <view class="menu-img" bindtap="selectMenu" data-ind
微信公众号菜单开发以及授权详细说明
主代码请参考:http://www.cnblogs.com/hopelooking/p/7463934.html 难点解析: 在微信创建菜单的时候我们惯用的是curl,但是菜单中难免是要有中文的,如果你的php版本是5.4版本的话,那么一定会报错的,主要错误原因是对象或者字符串之间的错误,那么我们在使用json_encode的时候就不能单纯的只是json一下了,应该json_encode($data,JSON_UNESCAPED_UNICODE) 例子: public function acti