0

我正在尝试创建一个一次只显示/隐藏一个菜单的容器系统。它在大多数情况下都有效,但我无法让 CSS 过渡正常工作。我已经看了几个小时,无法弄清楚为什么根本没有发生转换。

单击容器时,菜单需要下拉并向上滚动。我只需要一个起点,当用户单击容器时会发生某种转换。

CSS:

.singledrop {
    display: none;
}
.singledroplabel h2 {
    display: inline;
    color: #4e4e50;
}
.singledrop+.content {
    display: none;
    height: 0px;
    transition: height 0.2s ease-in-out;
    -webkit-transition: height 0.2s ease-in-out;
    -moz-transition: height 0.2s ease-in-out;
    -ms-transition: height 0.2s ease-in-out;
}
.singledrop:checked+.content {
    display: block;
    height: auto;
}

HTML:

<div>
    <label class="singledroplabel" for="drop1"><h2>Foo</h2></label>
    <input class="singledrop" type="radio" name="menu" id="drop1" />
    <div class="content">
        foo<br/>
        foo<br/>
        foo<br/>
        foo<br/>
        foo<br/>
        foo<br/>
        foo<br/>
    </div>
</div>
<div>
    <label class="singledroplabel" for="drop2"><h2>Bar</h2></label>
    <input class="singledrop" type="radio" name="menu" id="drop2" />
    <div class="content">
        bar<br/>
        bar<br/>
        bar<br/>
        bar<br/>
        bar<br/>
        bar<br/>
        bar<br/>
    </div>
</div>
4

1 回答 1

3

你不能动画到height:auto. 尝试硬编码一个高度,或者设置max-height一个巨大的东西。

http://jsfiddle.net/adambiggs/MAbD3/

是最大高度方法的一个很好的例子。

于 2013-01-22T22:25:39.753 回答