作者:yoom 时间: 2009-12-21 文档类型:原创 来自:蓝色理想
昨天用ucweb看到了goos发的一篇帖子:谁说Float菜单不可以水平居中,进去看了看,觉得方法有点繁琐了,用到了负边距,position:relativel; 和很少的一点hack。
我这里还有更简单的办法,先展示:其实我外面应该再套一个div,但为了减少碳排放,舍弃。
运行代码框<!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="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body{font-family:Verdana,Arial,sans-serif;font-size:12px;margin:120px auto;text-align:center;} ul{margin:0;padding:0;list-style:none;} #navigation{display:inline-block;border:solid 1px red;padding:20px;} #navigation li{height:30px;float:left;} #navigation li a{float:left;height:30px;line-height:30px;padding:0 23px;background:#97C099;} #navigation li a:hover{background:#59c099;color:#fff;} </style> <!--[if lte IE 7]><style type="text/css">#navigation{display:inline;}</style><![endif]--> <title>float菜单局中一法</title> </head> <body> <ul id="navigation"> <li><a href="#">Home</a></li> <li><a href="#">News</a></li> <li><a href="#">Store</a></li> <li><a href="#">Group</a></li> <li><a href="#">Community</a></li> <li><a href="#">Help</a></li> </ul> </body> </html> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
其中最为关键的是这一句:
<!--[if lte IE 7]><style type="text/css">#navigation{display:inline;}</style><![endif]-->
为了照顾较低版本IE,这里使用了条件注释,感觉在IE7以下中,display:inline;的作用就相当于inline-block;。
根据上面代码进化而来的滑动门导航:
运行代码框<!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="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body{font-family:Verdana,Arial,sans-serif;font-size:12px;margin:120px auto;text-align:center;} ul{margin:0;padding:0;list-style:none;} #navigation{display:inline-block;padding:20px;border:solid 1px red;} #navigation li{height:30px;float:left;} #navigation li a{float:left;background:#97C099 url(http://home.blueidea.com/attachment/200903/13/381636_1236958262fsCk.gif) left top no-repeat;padding-left:27px;height:30px;overflow:hidden;} #navigation li a span{height:30px;float:left;background:url(http://home.blueidea.com/attachment/200903/13/381636_1236958262fsCk.gif) right -352px no-repeat;padding-right:27px;line-height:33px;cursor:hand;} #navigation li a:hover,#navigation li.current a{background-position:left -176px;color:#009;background-color:#8597B5;} #navigation li a:hover span,#navigation li.current a span{background-position:right -528px;} #navigation li.current a{font-weight:bold;} </style> <!--[if lte IE 7]><style type="text/css">#navigation{display:inline;}</style><![endif]--> <title>根据上面代码升级为滑动门样式</title> </head> <body> <ul id="navigation"> <li><a href="#"><span>Home</span></a></li> <li><a href="#"><span>News</span></a></li> <li class="current"><a href="#"><span>Store</span></a></li> <li><a href="#"><span>Group</span></a></li> <li><a href="#"><span>Community</span></a></li> <li><a href="#"><span>Help</span></a></li> </ul> </body> </html> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
其中,这两句有必要说明一下,以免被认为是多余的:
#navigation li a{overflow:hidden;} /* 隐藏掉IE5.5、6多掉的那3px,不是3px bug哈!因为height:30px;line-height:33px; 在IE5.5、6中高度就是33px了。 */#navigation li a span{cursor:hand;}/* 照顾IE 5.5、6、7鼠标放在span上面不呈手型的bug。此外,IE5.5不支持cursor:pointer;但IE全版本都认识cursor:hand;*/
完工了,缺点就是,写那一行条件注释,对于有xhtml洁癖的人来说,就像眼里的沙子,想除掉,那就使用hack也无妨!呵呵!
在safari4,chorme,opera10,ie5.5、5、6、7,ff3中均暂未发现问题。
经典论坛交流:http://bbs.blueidea.com/thread-2962953-1-1.html
出处:蓝色理想 责任编辑:bluehearts
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。