CSS驱动的横向下拉菜单(改进版)
由于我的IE是IE7的,所以起初没有意识到那个下拉菜单在IE6中不能显示,今天刚把IE7卸了装了IE6,一般的,由于CSS驱动的下拉菜单不能在IE6中正常工作,大多数人会选择用JavaScript去实现下拉菜单,但其实CSS也可以做到的哦~~
这个关键就是这个语句:body { behavior:url(csshover.htc);}。通过IE特有的属性behavior调用一个行为文件,为IE添加一些通常没有的功能。即只有IE才去下载它,其他浏览器不会浪费带宽去下载它,其缺点是:behavior声明无法通过样式表的验证。可以将之转移到一个单独的样式表文件,然后用@import引用它。让主要的样式表通过验证。
下面看一下CSS的源码,注释中有给出csshover.htc文件的作用。(我有修改多处源码,发现上次写的有很多不足~~)对了,这个csshover.htc文件可以在http://www.xs4all.nl/~peterned/csshover.html#changes上下载得到。(是英文网站哈,不过单击橙色的download连接就可以下载了,只是有不同的版本,我这里用的是“Version 1.42.060206 (:hover and :active) download | view”这个连接的版本。)不废话了,还是看源码吧~~
BODY部分
复制代码代码如下:
<ul id="nav2">
<li><a href="">文章</a>
<ul>
<li><a href="">CSS教程</a></li>
<li><a href="">DOM教程</a></li>
<li><a href="">XML教程</a></li>
<li><a href="">FLASH教程</a></li>
</ul>
</li>
<li><a href="">交流</a>
<ul>
<li><a href="">CSS应用</a></li>
<li><a href="">XML应用</a></li>
<li><a href="">FLASHAS编程</a></li>
<li><a href="">DW网页制作</a></li>
</ul>
</li>
<li><a href="">博客</a>
<ul>
<li><a href="">全部</a></li>
<li><a href="">网页特效</a></li>
<li><a href="">高级编程</a></li>
<li><a href="">FLASH动画</a></li>
</ul>
</li>
</ul>
CSS部分
复制代码代码如下:
/* CSS驱动的横向下拉菜单 */
body {
behavior:url(csshover.htc);
}
ul#nav2 {
padding:0px;
margin:0px;
}
/*注意:列表<ul>不可以是列表的子结点,但可以是列表项<li>的子结点*/
ul#nav2 li {
float:left;
width:160px;
list-style:none;
}/*列表项水平浮动,使形成横向的一级菜单*/
ul#nav2 li ul { /*设置下拉菜单不可见,只有当鼠标经过使才可见*/
display:none;
margin:0;
padding:0;/*去除所以的缩进(不同浏览器对列表的内外边距默认设置不一样,在这里设置使消除不同浏览器间的不同效果)*/
}
ul#nav2 li:hover ul{
display:block;
}
ul#nav2 li li:hover {
background-color:#f4f4f4;
}
/*CSS中允许将悬停样式用在所有元素中,而IE只运行应用在连接上,
但是,csshover.htc文件的唯一作用就是给IE增加了任意元素的悬停功能。*/
ul#nav2 li a{
display:block;
border:1px solid #c5c6c4;
text-decoration:none;
color:#000;
}
ul#nav2 li li a { /*对下拉菜单中的项进行修饰*/
display:block;
font-size:12px;
border:1px solid #ccc;
padding:3px;
text-decoration:none;
color:#777;
width:152px;/*使所有列表项宽度统一,160-3*2-1*2=152px*/
}
/*IE中display:block不足以使连接a的可单击区域填充整个列表项,但如果给连接设置一个明确的宽度,就可以得到想要的行为。对于其他的浏览器,只需要将width重新跳回auto让浏览器自己自己调整就可以即可。*/
ul#nav2>li li a {
width:auto;
}
/*子选择器>对IE6以下不可见,所以IE6不会去执行它*/
OK~~,到这里不同浏览器的CSS驱动的下拉菜单就告一段落了,不过,可能有的朋友会想让子菜单放在其他的位置,而不是默认的一级菜单的正下方,也好办:
1.在ul#nav2 li选择器中添加position:relative;
2.在ul#nav2 li ul 选择器中添加position:absolute;
3.这样就将一级菜单的各列表项(已相对定位)为任何绝度定位的子孙元素建立了一个容器块,即绝对定位了的子菜单将以它为定位的起始点,通过添加top,left属性定位调整与一级菜单的关系来调整自己的位置(即距离容器块左上角的位置偏移量)。
由于我的IE是IE7的,所以起初没有意识到那个下拉菜单在IE6中不能显示,今天刚把IE7卸了装了IE6,一般的,由于CSS驱动的下拉菜单不能在IE6中正常工作,大多数人会选择用JavaScript去实现下拉菜单,但其实CSS也可以做到的哦~~
这个关键就是这个语句:body { behavior:url(csshover.htc);}。通过IE特有的属性behavior调用一个行为文件,为IE添加一些通常没有的功能。即只有IE才去下载它,其他浏览器不会浪费带宽去下载它,其缺点是:behavior声明无法通过样式表的验证。可以将之转移到一个单独的样式表文件,然后用@import引用它。让主要的样式表通过验证。
下面看一下CSS的源码,注释中有给出csshover.htc文件的作用。(我有修改多处源码,发现上次写的有很多不足~~)对了,这个csshover.htc文件可以在http://www.xs4all.nl/~peterned/csshover.html#changes上下载得到。(是英文网站哈,不过单击橙色的download连接就可以下载了,只是有不同的版本,我这里用的是“Version 1.42.060206 (:hover and :active) download | view”这个连接的版本。)不废话了,还是看源码吧~~
BODY部分
复制代码代码如下:
<ul id="nav2">
<li><a href="">文章</a>
<ul>
<li><a href="">CSS教程</a></li>
<li><a href="">DOM教程</a></li>
<li><a href="">XML教程</a></li>
<li><a href="">FLASH教程</a></li>
</ul>
</li>
<li><a href="">交流</a>
<ul>
<li><a href="">CSS应用</a></li>
<li><a href="">XML应用</a></li>
<li><a href="">FLASHAS编程</a></li>
<li><a href="">DW网页制作</a></li>
</ul>
</li>
<li><a href="">博客</a>
<ul>
<li><a href="">全部</a></li>
<li><a href="">网页特效</a></li>
<li><a href="">高级编程</a></li>
<li><a href="">FLASH动画</a></li>
</ul>
</li>
</ul>
CSS部分
复制代码代码如下:
/* CSS驱动的横向下拉菜单 */
body {
behavior:url(csshover.htc);
}
ul#nav2 {
padding:0px;
margin:0px;
}
/*注意:列表<ul>不可以是列表的子结点,但可以是列表项<li>的子结点*/
ul#nav2 li {
float:left;
width:160px;
list-style:none;
}/*列表项水平浮动,使形成横向的一级菜单*/
ul#nav2 li ul { /*设置下拉菜单不可见,只有当鼠标经过使才可见*/
display:none;
margin:0;
padding:0;/*去除所以的缩进(不同浏览器对列表的内外边距默认设置不一样,在这里设置使消除不同浏览器间的不同效果)*/
}
ul#nav2 li:hover ul{
display:block;
}
ul#nav2 li li:hover {
background-color:#f4f4f4;
}
/*CSS中允许将悬停样式用在所有元素中,而IE只运行应用在连接上,
但是,csshover.htc文件的唯一作用就是给IE增加了任意元素的悬停功能。*/
ul#nav2 li a{
display:block;
border:1px solid #c5c6c4;
text-decoration:none;
color:#000;
}
ul#nav2 li li a { /*对下拉菜单中的项进行修饰*/
display:block;
font-size:12px;
border:1px solid #ccc;
padding:3px;
text-decoration:none;
color:#777;
width:152px;/*使所有列表项宽度统一,160-3*2-1*2=152px*/
}
/*IE中display:block不足以使连接a的可单击区域填充整个列表项,但如果给连接设置一个明确的宽度,就可以得到想要的行为。对于其他的浏览器,只需要将width重新跳回auto让浏览器自己自己调整就可以即可。*/
ul#nav2>li li a {
width:auto;
}
/*子选择器>对IE6以下不可见,所以IE6不会去执行它*/
OK~~,到这里不同浏览器的CSS驱动的下拉菜单就告一段落了,不过,可能有的朋友会想让子菜单放在其他的位置,而不是默认的一级菜单的正下方,也好办:
1.在ul#nav2 li选择器中添加position:relative;
2.在ul#nav2 li ul 选择器中添加position:absolute;
3.这样就将一级菜单的各列表项(已相对定位)为任何绝度定位的子孙元素建立了一个容器块,即绝对定位了的子菜单将以它为定位的起始点,通过添加top,left属性定位调整与一级菜单的关系来调整自己的位置(即距离容器块左上角的位置偏移量)。
标签:
CSS,下拉菜单
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“CSS横向下拉菜单(兼容IE6)”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]