冷枫@CSDN

CSharp程序员大本营:积累平凡就是积累卓越!有了翅膀,你就有了天空!钝到极点的刀才最具杀伤力——因为它是锤子!

用户操作
[即时聊天] [发私信] [加为好友]
╄ 冷枫ID:JavaProgramers
483770次访问,排名98好友111人,关注者144
毕业于南阳理工学院计算机系软件工程专业,一直从事于软件开发工作,编程经验5年,一线程序员出身,开发实战经验丰富,精通Asp,Asp.NET, ERP(C#.NET),基于WEB(Asp.Net)的MIS等世道上的一般编程,精通SQL Server存储过程开发,曾为一家中型商务企业软件开发工程师,软件培训师。
JavaProgramers的文章
原创 287 篇
翻译 0 篇
转载 24 篇
评论 441 篇
╄ 冷枫的公告
╄ 冷枫 Asp.NET微软MVP
本Blog技术支持QQ群
[NET技术联盟]:1908832
[冷枫开发小组]:6307410
CSharp开放源码促进会
CSharp程序员大本营
最近评论
反对垄断:现在都在卖服务,软件都是白送的,微软降到100多就想笼络人心,做梦,微软迟早要完蛋
wyw_2002:“中国用户的计算机中60%都运行微软的操作系统“

请问这个60%是你统计的吗?
那40%是什么系统?

捡瓶子:废瓶子1角钱一个,一天捡100个,10元,跑去吃饭8元,买个XP,也要捡2年啊!
zenggang2008:反击盗版,在中国还有很长的路要走啊
大家都已经习惯"免费"了
路过:盗版不利于中国的软件业的发展,最终用户好像在盗版软件中得到了很多的好处,但是把中国的软件产业搞垮了。最终用户最后还是受害者。
文章分类
收藏
    相册
    IT英雄传奇
    大学留念集
    公司一角
    旅游系列二
    旅游系列三
    旅游系列一
    [╄ 冷枫]简介
    站长简介(RSS)
    经典网站收集
    .NET分页存储过程
    AJAX中国
    DOTNET控件网
    DotNet男孩社区
    Java共舞
    Tutorails[.NET]
    中国盟动力
    冷枫技术论坛
    开发者在线
    技术无极限(RSS)
    深圳赶集网
    源码网
    软件项目网
    网上邻居
    『 天道酬勤 』(RSS)
    『 孟子E章 』(RSS)
    『 孟子E章 』
    『 邹建专栏 』(RSS)
    『webdiyer 』
    微软官方
    ASP.NET 入门教程
    webcast视频教程
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 如何用CSS制作横向菜单?收藏

    新一篇: .net页面间的参数传递简单实例 | 旧一篇: CSS布局入门[css]

    管在我的网站和文章里都有提到CSS制作菜单的方法,但很多初学者还是不太清楚如何实现,以及实现原理,我想专门写一篇详细教程会对大家比较有帮助。

    我们先来看一个菜单的例子,最终效果是:

    然后我们来详细讲解步骤

    第一步:建立一个无序列表

    我们先建立一个无序列表,来建立菜单的结构。代码是:

    <ul>
    <li><a href="1">首页</a></li>
    <li><a href="2">产品介绍</a></li>
    <li><a href="3">服务介绍</a></li>
    <li><a href="4">技术支持</a></li>
    <li><a href="5">立刻购买</a></li>
    <li><a href="6">联系我们</a></li>
    </ul>

    效果是:

    第二步:隐藏li的默认样式

    因为看起来不是很好看,菜单通常都不需要li默认的圆点,我们给UL定义一个样式来消除这些圆点。

    当然,为了更好的控制整个菜单,我们把菜单放在一个div里。页面代码变成:

    <div class="test"> <ul>
    <li><a href="1">首页</a></li>
    <li><a href="2">产品介绍</a></li>
    <li><a href="3">服务介绍</a></li>
    <li><a href="4">技术支持</a></li>
    <li><a href="5">立刻购买</a></li>
    <li><a href="6">联系我们</a></li>
    </ul> </div>

    CSS定义为:

    .test ul{list-style:none;}

    说明:“.test ul”表示我要定义的样式将作用在test的层里的ul标签上。

    现在的效果是没有圆点了:

    第三步:关键的浮动

    这里是菜单变成横向的关键,我们给li元素加上一个“float:left;”属性,让每个li浮动在前面一个li的左面。

    CSS定义为:

    .test li{float:left;}

    效果是:

    看,菜单变横向了。就这么简单!下面需要做的就是优化细节了。

    第四步:调整宽度

    菜单都挤在一起不好看怎么办?我们来调节li的宽度。

    在CSS中添加定义width:100px指定一个li的宽度是100px,当然你可以根据你的需要调整数值:

    .test li{float:left;width:100px;}

    效果是:

    如果我们同时定义外面div的宽度,li就会根据div的宽度自动换行,例如定义了div宽350px,6个li的总宽度是600px,一行排不下就自动变成两行:

    .test{width:350px;}

    效果是:

    第五步:设置基本链接效果

    接下来,我们通过CSS来设置链接的样式,分别定义:link、:visited、:hover的状态

    .test a:link{color:#666;background:#CCC;text-decoration:none;}
    .test a:visited{color:#666;text-decoration:underline;}
    .test a:hover{color:#FFF; font-weight:bold;text-decoration:underline;background:#F00;}

    效果是:

    第六步:将链接以块级元素显示

    有朋友问,菜单链接的背景色为什么没有填满整个li的宽度?恩,解决的方法很简单,在a的样式定义中增加display:block,使链接以块级元素显示。

    同时我们微调了如下细节:

    • 用text-align:center将菜单文字居中;
    • 用height:30px增加背景的高度;
    • 用margin-left:3px使每个菜单之间空3px距离;
    • 用line-height:30px;定义行高,使链接文字纵向居中;

    CSS定义象这样:

    .test a{display:block;text-align:center;height:30px;}
    .test li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}

    效果变成:

    这样就漂亮多了吧。

    第七步:定义背景图片

    我们通常都会在每个链接前加一个小图标,这样导航更清楚。CSS是采用定义li的背景图片来实现的:

    .test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decoration:none;}
    .test a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:url(arrow_on.gif) #F00 no-repeat 5px 12px;}

    说明:“background:url(arrow_off.gif) #CCC no-repeat 5px 12px;”这句代码是一个CSS缩写,表示背景图片是arrow_off.gif;背景颜色是#CCC;背景图片不重复"no-repeat",背景图片的位置是左边距5px、上边距12px;

    默认状态下,图标为arrow.off.gif,当鼠标移动到链接上,图标变为arrow_on.gif

    效果变成:

    现在css的完整代码是:

    .test ul{list-style:none;}
    .test li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}
    .test a{display:block;text-align:center;height:30px;}
    .test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decoration:none;}
    .test a:visited{color:#666;text-decoration:underline;}
    .test a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:url(arrow_on.gif) #F00 no-repeat 5px 12px;}

    页面的完整代码是:

    <div class="test">
    <ul>
    <li><a href="1">首页</a></li>
    <li><a href="2">产品介绍</a></li>
    <li><a href="3">服务介绍</a></li>
    <li><a href="4">技术支持</a></li>
    <li><a href="5">立刻购买</a></li>
    <li><a href="6">联系我们</a></li>
    </ul>
    </div>

    好了,主要步骤就是这7步,立刻拷贝和修改代码试试,你也可以用CSS做横向菜单了!

    发表于 @ 2005年05月08日 06:54:00|评论(loading...)|编辑

    新一篇: .net页面间的参数传递简单实例 | 旧一篇: CSS布局入门[css]

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © ╄ 冷枫