0

一度に1つのメニューのみを表示/非表示にするコンテナシステムを作成しようとしています。ほとんどの部分で機能しますが、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/

max-height メソッドの良い例です。

于 2013-01-22T22:25:39.753 に答える