全兼容的纯CSS级联菜单要点浅析

作者:14px 来源:蓝色理想 时间:2009-06-10 14:42:00 

  • 参与测试的浏览器:IE6 / IE7 / IE8 / FF3 / OP9.6 / SF3 / Chrome2

  • 操作系统:Windows

  • 蓝色理想经典论坛首发,转载请注明出处

这次给项目做的级联菜单使用了纯CSS的方式,霍霍,能用CSS做的,就用CSS完成吧。

早已有前辈完成过这样的实例了,我以为我能顺利完成,但没想到处处碰壁,故记录一点心得如下,供大家参阅。

废话不多说,咚咚咚,开始制作啦!

除了IE6这个坚强的孩子,其他浏览器攻克还是比较容易的。

运行代码框

该实例完成大概就两个要点:

  1. 忌浮忌躁,一步步来,先把最低级的display:none;做。

  2. “:hover伪类”的使用,默认状态“display:none;”,“:hover”时则“display:block;”则能很容易完成。

而IE6下折腾就比较复杂了,经过头破血流的教训之后,总结出关键四点

1. 原理:IE6仅<a>标签支持:hover伪类,但如果a标签里面再嵌入a标签,里面的a标签将不会生效,所以必须在之间套加一层<table>;

<!–[if IE 6]><a href="#nogo"><table><tr><td><![endif]–>
内容部分可以含有<a>标签
<!–[if IE 6]></td></tr></table></a><![endif]–>

2. 关键样式名:这个用于:hover效果的a标签的命名,如果使用与<li>一致的样式名(在非IE6中是li:hover产生的效果),将不用再另写样式代码,不仅节省了代码开销,而且可维性更好;(这个是省时省力的关键)

<li class="li">
<!–[if IE 6]><a class="li" href="#nogo"><table><tr><td>
<![endif]–>
内容部分可以含有<a>标签
<!–[if IE 6]></td></tr></table></a><![endif]–>
</li>

3. visibility的使用:采用display的话将出现onmouseout时上一次显示的optionGroup仍然不消失的情况

.c_subNav .li:hover ul { visibility:visible;}

4.table的设置: [含泪ing]table一定要记得width:100%;啊,一定要记得啊,一定要记得啊,一定要记得啊。

最后完成效果:

运行代码框


标签:兼容,css,级联,菜单
0
投稿

猜你喜欢

  • Dreamweaver量身打造Wordpress留言板

    2009-12-09 17:08:00
  • CREATE FUNCTION sqlserver用户定义函数

    2012-08-21 10:57:42
  • Data URI小试 —— 在旺旺点灯(JS)上的应用

    2009-10-30 18:28:00
  • 一个asp版的xheditor上传图片服务器端文件

    2009-12-21 14:18:00
  • 使用游标进行PHP SQLSRV查询的方法与注意事项

    2023-05-22 10:51:10
  • Oracle时间日期操作方法小结

    2010-11-25 18:04:00
  • ASP UTF-8页面乱码+GB2312转UTF-8 +生成UTF-8格式的文件(编码)

    2011-04-19 11:15:00
  • swfupload上传使用代码说明ASP版

    2011-11-27 09:34:32
  • 深刻理解Oracle数据库的启动和关闭

    2010-07-26 13:08:00
  • 如何优化网站图片以快速显示

    2008-04-05 10:09:00
  • iframe 的用法与注意事项

    2008-02-12 12:56:00
  • 实例剖析:MySQL数据库优化详解

    2008-11-22 12:19:00
  • 远程连接sql server 2000服务器的解决方案

    2010-03-08 13:33:00
  • 用YSlow评分插件分析我们页面

    2008-08-26 11:48:00
  • 网页设计五原则

    2007-11-03 13:50:00
  • 从XML中读取数据到内存的实例

    2008-09-04 14:43:00
  • 在XPath查询中指定轴(转自MSSQL手册)

    2008-09-04 14:23:00
  • 谈谈网页一屏有多大?

    2007-12-21 12:28:00
  • ASP中使用Set ors=oConn.Execute()时获取记录数的方法

    2011-02-20 10:48:00
  • 如何把小写数字转换成英文?

    2009-11-06 13:59:00
  • asp之家 网络编程 m.aspxhome.com