纯css下拉菜单详解

纯css下拉菜单详解一级菜单二级菜单二级菜单二级菜单一级菜单二级菜单二级菜单二级菜单下拉菜单由于实用,所以受到人们的欢迎。下拉菜单通常是由javascript来实现的,也应该由javascript来实现,因为这属于行为层范围。然而大家知道,使用CSS的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

<!--[if lte IE 6]><a href="#"><![endif]-->
<dl>
        <dt>一级菜单</dt>
        <dd>二级菜单</dd>
        <dd>二级菜单</dd>
        <dd>二级菜单</dd>
</dl>
<!--[if lte IE 6]></a><![endif]-->

Jetbrains全家桶1年46,售后保障稳定

<dl>
        <dt>一级菜单</dt>
        <dd>二级菜单</dd>
        <dd>二级菜单</dd>
        <dd>二级菜单</dd>
</dl>

下拉菜单由于实用,所以受到人们的欢迎。下拉菜单通常是由
javascript 来实现的,也应该由
javascript 来实现,因为这属于行为层范围。然而大家知道,使用
CSS
:hover 伪类也可以制作下拉菜单,比起
javascript 来,使用
CSS 制作更简单,且更容易理解。但由于
IE6 只有 a 标签支持
:hover 伪类,所以又给这种带来了“阻碍”。不过大家还是比较喜欢纯
CSS 下拉菜单,现在我们就利用
IE条件注释来制作一个纯
CSS 下拉菜单。为了便于理解,选择了很很简单的代码,至于更复杂的,大家可以触类旁通、举一反三。

XHTML 代码:

CSS 代码:

dd { display:none; }
dl:hover dd { display:block; }

查看Demo

在 IE7 和 FF 等标准浏览器中,下拉菜单可以正常使用,但 IE6 中却没有效果。 既然 IE6 只有 a 标签才支持 :hover,那就加上 a 标签。XHTML 代码改写成:

CSS 代码改写成:

dd { display:none; }
dl:hover dd, a:hover dd { display:block; }

查看Demo

然而在 IE6 中依然没有效果,为什么呢?难道代码有错?其实代码没有错,这是IE6BUG,关于次 BUG 你可以参看《:hover伪类在IE6中的BUG》。可以加上一些属性来消除此BUG,这里给 a:hover 加 border:0,即CSS 代码再次改写成:

dd { display:none; }
dl:hover dd, a:hover dd { display:block; }
a:hover { border:0; }

查看效果

此时在 IE6 中鼠标移动到上面下拉菜单出现了。然而给每个菜单加上连接的时候,IE6 里又不行了,为什么?为什么?不知道。。。不过再给IE条件注释里的 a 标签里再套上一个表格,即 XHTML 代码改写成如下:

<!--[if lte IE 6]><a href="#"><table><tr><td><![endif]-->
<dl>
        <dt><a href="#">一级菜单</a></dt>
        <dd><a href="#">二级菜单</a></dd>
        <dd><a href="#">二级菜单</a></dd>
        <dd><a href="#">二级菜单</a></dd>
</dl>
<!--[if lte IE 6]></td></tr></table></a><![endif]--> 

查看Demo

此时,下拉菜单在 IE6 里没有问题了。

更多例子:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234142.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux服务器开启snmp_snmp trap

    linux服务器开启snmp_snmp trap配置snmptrapvi/etc/snmp/snmptrap.conf,在文件最后添加如下agentAddressudp:127.0.0.1:161viewsystemonlyincluded.1.3.6.1.2.1.1viewsystemonlyincluded.1.3.6.1.2.1.25.1rocommunitycsg-tsgz991172.16.140.214-VsystemonlyrouserauthOnlyUsersysL

    2022年8月20日
    15
  • plsqldev连oracle,plsqldev怎么联接oracle客户端

    plsqldev连oracle,plsqldev怎么联接oracle客户端如果你的电脑是64位的计算机,你需要安装64位的oracle客户端,但是PL/SQLdev目前没有64位的,因此你要手动设置一个32位的客户端。pl/sql不用装64位的,因为它能支持32位和64位。如果你的数据库是64位,那么你就得装一个Oracle32位的客户端,直接去oracle官方下载即可。安装完毕之后,需要进行配置:app\Administrator\product\11.2.0\…

    2022年5月6日
    52
  • bash找不到命令_bash sed

    bash找不到命令_bash sedCentos7默认安装了openJDK,jps命令不能使用,如果jdk是重新安装指定的版本,默认不需要重新安装jps服务[root@maven-test~]#jpsbash:jps:commandnotfound…解决办法[root@maven-test~]#yuminstall-yjava-1.8.0-openjdk-devel再次执行[root@maven-test~]#jps20755Jps[root@maven-test~]#…

    2025年12月3日
    7
  • 在一台2010年的老电脑上安装黑群辉dsm5.2并完成外网访问与洗白操作

    在一台2010年的老电脑上安装黑群辉dsm5.2并完成外网访问与洗白操作背景我和媳妇的手机容量都快要满了,主要是手机存储了大量的照片和视频,所以考虑个解决方案给手机瘦身。方案要满足一下几个要求:1、数据非常重要,一定要保证数据的可靠性;2、自动完成照片的比较,然后上传;3、照片需要满足随时、随地查看;4、保证数据的安全及私密性,最好不使用公共网盘服务(怕开发商做恶)5、总投入费用不超过300块钱。方案对比方案1(最优雅):使用手机厂商自带的云存储服务,以appleicloud为例,50G的存储已经不够用了,需要升级到200G的方案,一个月就是21块钱,一年是252

    2022年6月12日
    57
  • java单元测试覆盖率_android单元测试覆盖率

    java单元测试覆盖率_android单元测试覆盖率一、简介之所以叫温故而知新,是因为将这两个工具结合起来作为单元测试工具的想法在上一个项目中应用了,好像还没有人将这两种工具结合使用,或者没有写成博客供大家参考,现在重新温习下将想法写下来。gtest单元测试工具接触过的人都很熟悉了,它是一款google提供的强大的测试框架,测试案例的编写也比较简单,gtest案例的编写可以参考系列博文:http://www.cn…

    2022年9月29日
    3
  • 给ocx进行签名

    给ocx进行签名

    2022年7月13日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号