展开嵌套无序列表和水平显示在IE/Chrome/FF
Unraveling nested unordered lists and displaying horizontally in IE/Chrome/FF
我已经在谷歌上搜索了大约一个星期,我找不到一个在所有三种浏览器上都有效的解决方案。我试图找到一种方法来输出嵌套无序列表水平使用跨平台css。
我已经把我在这里尝试做的模拟放在一起:http://jsfiddle.net/gNqJb/如果您单击Tier1和tier2块(菜单开始展开,所以您需要先这样做),您将看到我想要的功能。这个想法是,如果你点击一个菜单标题,它会水平展开标题旁边的子菜单。这段代码的问题在于子菜单被放置在列表项块(<.li>)之外。此外,它在IE中根本不起作用。在这个例子中,所有名字中带有*的都是头文件。
由于我正在使用Drupal,所以我被它的菜单所困,它的输出是这样的:
<ul class="menu">
<li class="first expanded"><a href="#" class="active">Home</a>
<ul class="menu">
<li class="first last leaf"><a href="#" class="active">Test</a></li>
</ul>
</li>
<li class="first expanded"><a href="#" class="active">Home</a>
<ul class="menu">
<li class="first last leaf"><a href="#" class="active">Test</a></li>
</ul>
</li>
<li class="first expanded"><a href="#" class="active">Home</a>
<ul class="menu">
<li class="first last leaf"><a href="#" class="active">Test</a></li>
</ul>
</li>
<li class="first expanded"><a href="#" class="active">Home</a>
<ul class="menu">
<li class="first last leaf"><a href="#" class="active">Test</a>
<ul class="menu">
<li class="first last leaf"><a href="#" class="active">Test</a></li>
</ul>
</li>
</ul>
</li>
<li class="last leaf"><a href="#" class="active">Test Outside</a></li>
</ul>
当我对它应用格式时,我得到了:http://jsfiddle.net/C2eU4/
我将非常感谢任何帮助在得到这个布局固定使用在IE/Chrome/FF与Drupal。
提前感谢你们能给予的任何帮助!
好吧,我有一个纯CSS解决方案,至少应该让你知道它应该如何工作。需要注意的是,动画目前只能在webkit浏览器中工作。
这里小提琴
这里是你的CSS的相关变化:
li ul {
width:0px;
position: absolute;
left:100%;
top: -1px;
overflow:hidden;
-webkit-animation-name: slide;
animation-name: slide;
-webkit-animation-duration: .5s;
animation-duration: .5s;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-direction: reverse;
animation-direction: reverse;
}
li + li{
-webkit-animation-name: push;
animation-name: push;
-webkit-animation-duration: .5s;
animation-duration: .5s;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-direction: reverse;
animation-direction: reverse;
}
li:hover ul {
-webkit-animation-name: slide;
animation-name: slide;
-webkit-animation-duration: .5s;
animation-duration: .5s;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-direction: normal;
animation-direction: normal;
display:inline-block;
width: 100px;
}
li:hover + li {
-webkit-animation-name: push;
animation-name: push;
-webkit-animation-duration: .5s;
animation-duration: .5s;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-direction: normal;
animation-direction: normal;
margin-left: 100px;
}
@-webkit-keyframes slide{
from {
width: 0px;
}
to {
width: 100px;
}
}
@-webkit-keyframes push{
from {
margin-left:0px;}
to {
margin-left:100px;}
}
}
编辑:我也为jQuery做了这个。我想今天是懒散的一天。
这里的小提琴
相关文章:
- IE/Chrome中未定义的函数,但Firefox中没有
- 滚动在Chrome中有效,但在Firefox或IE中无效
- CKeditor预览插件.js,为Chrome和IE进行编辑.因为它拒绝CSS样式
- 如何编写在Chrome和IE中正常工作的JavaScript
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- JavaScript可以在IE+Chrome中使用,但不能在FF中使用
- 在 Java 中使用 IE/Chrome HTML 渲染器或使用 JavaScript 存储文件
- Javascript - 附加到文本区域值 - IE Chrome 和 Firefox
- Src 更改在 Firefox 中工作,而不是在 IE/Chrome 中
- HTML5游戏-工作在IE, Chrome.在FireFox中失败…直到我导航到一个.mp3文件…然后它才工作
- JQuery脚本,适用于Firefox,而不是在IE, Chrome
- jquery不工作在IE, Chrome,工作在FF
- 创建CSV并打开JS不工作在IE, Chrome
- OpenLayers 3旋转示例在Win32触摸设备上的IE/Chrome嵌入式WebBrowser控件中表现不同
- preventDefault()对一个多选择,不同的行为在Firefox - IE - Chrome
- Js工作在IE, Chrome,但不是Firefox
- Ie /chrome检查器导致重画
- 展开嵌套无序列表和水平显示在IE/Chrome/FF
- Firefox与IE/Chrome中的事件处理程序
- Firefox将文本叠加在错误的位置,而不是在Firefox中工作(在IE, Chrome和safari中很好)