请教一个菜单栏CSS的问题

2013-03-25 16:33:26 +08:00
 Tiny
菜单栏移入的时候会显示二级菜单,移出的时候会隐藏二级菜单
如图

浮动的DIV 是absolute,移入移出的时候计算得出他的位置,问题就在这里,在滚动条滚动的时候这个浮动的DIV是不会跟随滚动条移动的。在IE8下面鼠标移入浮动DIV滚动鼠标,浮动的DIV不消失,下面的菜单继续在滚动。我觉得是我思路有问题,请问一下这种类似的效果有什么更合理的解决办法吗?

谢谢。
4086 次点击
所在节点    CSS
10 条回复
Julyyq
2013-03-25 16:48:58 +08:00
LZ随便打开哪个网站,看下源码看看别人是怎么搞得嘛
momou
2013-03-25 16:50:12 +08:00
上层没有relative?
Tiny
2013-03-25 17:13:03 +08:00
@moumou 加了relative没生效 重新写了个DEMO可以。。 应该是我HTML结构没写好
Tiny
2013-03-25 17:16:08 +08:00
@Julyyq 回复之前看一下回复按钮右手边的提示,如果你能“随便”打开哪个网站找到类似的例子的话,请随便贴个链接,我会非常感激。
rephaslife
2013-03-25 18:03:16 +08:00
增加一个fixed的框,自己弄到想要的位置。然后里面按顺序上一级菜单,在每个一级菜单的下面加上display:none的二级菜单。然后在每个一级菜单的相应事件里把对应二级菜单显示/隐藏。
这样二级菜单自然会把下面的内容挤出去。只要不要弄position或float就行了。

此方案是否可行?
Tiny
2013-03-25 21:31:46 +08:00
@rephaslife 这个要浮在上面的 不能挤开下面的元素
rephaslife
2013-03-25 21:37:40 +08:00
@Tiny display:relative;z-index:250;
liyandong
2013-03-26 19:18:51 +08:00
纯CSS有兼容各个浏览器的好办法么?
Kaiyuan
2013-03-26 19:59:03 +08:00
@Tiny 这样的二级菜单一般都用 ul>li>ul>li的结构,真的是随便都能找到一个类似的,看起来不同,代码是一样的.只是 IE6 不能纯 css 完成.
第一层菜单先设置releative,子菜单设置absolute,之后定位就好了.
ui li {position:relative;}
ul li ul {position:absolute;dispaly:none;top:0;left:100%;}
ul li:hover ul {dispaly:block}
不用定z-index. IE6 不支持:hover,需要jquery实现,js太麻烦,jquery直接一句代码可以.
Tiny
2013-03-27 09:38:08 +08:00
谢谢@Kaiyuan 自己已经鼓捣出来了 用的Jquery 实现和你的差不多 ,其实这里是三级菜单,HTML结构我刚开始没弄好 ,怎么都不行 改了之后就好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/63981

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX