Wie kann ich height:0;height:auto; mit CSS umwandeln?
P粉461599845
2023-08-27 11:59:03
<p>Ich versuche, CSS-Übergänge zu verwenden, um <code></code></p><ul> nach unten zu verschieben. <p><br /></p>
<p><code></code></p><ul> Beginnt bei <code>height: 0;</code>. Beim Schweben wird die Höhe auf <code>height:auto;</code> gesetzt. Dies führt jedoch dazu, dass es nur erscheint, <em> ohne </em>
<p>Wenn ich von <code>height: 40px;</code> zu <code>height: auto;</code> gehe, dann gleitet es nach oben zu <code>height: 0;< /code> und dann plötzlich auf die richtige Höhe springen. </p>
<p>Wie kann ich das sonst tun, ohne JavaScript zu verwenden? </p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">#child0 {
Höhe: 0;
Überlauf versteckt;
Hintergrundfarbe: #dedede;
-moz-transition: Höhe 1s Leichtigkeit;
-webkit-transition: Höhe 1s Leichtigkeit;
-o-Übergang: Höhe 1s Leichtigkeit;
Übergang: Höhe 1s Leichtigkeit;
}
#parent0:hover #child0 {
Höhe: automatisch;
}
#child40 {
Höhe: 40px;
Überlauf versteckt;
Hintergrundfarbe: #dedede;
-moz-transition: Höhe 1s Leichtigkeit;
-webkit-transition: Höhe 1s Leichtigkeit;
-o-Übergang: Höhe 1s Leichtigkeit;
Übergang: Höhe 1s Leichtigkeit;
}
#parent40:hover #child40 {
Höhe: automatisch;
}
h1 {
Schriftdicke: fett;
}</pre>
<pre class="brush:html;toolbar:false;">Der einzige Unterschied zwischen den beiden CSS-Snippets besteht darin, dass eines die Höhe 0 und das andere die Höhe 40 hat.
<hr>
<div id="parent0">
<h1>Beweg mich (Höhe: 0)</h1>
<div id="child0">Einige Inhalte
<br>Einige Inhalte
<br>Einige Inhalte
<br>Einige Inhalte
<br>Einige Inhalte
<br>Einige Inhalte
<br>
</div>
</div>
<hr>
<div id="parent40">
<h1>Hover me (Höhe: 40)</h1>
<div id="child40">Einige Inhalte
<br>Einige Inhalte
<br>Einige Inhalte
<br>Einige Inhalte
<br>Einige Inhalte
<br>Einige Inhalte
<br>
</div>
</div></pre>
<p><br /></p></ul></ul>
您应该使用scaleY。
我在 jsfiddle 上制作了上述代码的供应商前缀版本,并进行了更改你的jsfiddle使用scaleY而不是高度。
编辑 有些人不喜欢
scaleY
转换内容的方式。如果这是一个问题,那么我建议使用clip
代替。在过渡中使用
max-height
,而不是height
。并将max-height
的值设置为比您的盒子更大的值。请参阅 Chris Jordan 在另一个 JSFiddle 演示 /stackoverflow.com/a/20226830/18706">在这里回答。