Bagaimanakah saya boleh menukar height:0;height:auto;
P粉461599845
2023-08-27 11:59:03
<p>Saya cuba menggunakan peralihan CSS untuk membuat <kod></code></p><ul> <p><br /></p>
<p><kod></kod></p><ul> Bermula pada <kod>tinggi: 0;</kod>. Semasa tuding, ketinggian ditetapkan kepada <code>height:auto;</code>. Walau bagaimanapun, ini menyebabkan ia hanya muncul, <em> tanpa peralihan <p><br /></p>
<p>Jika saya beralih daripada <kod>tinggi: 40px;</kod> kepada <kod>tinggi: auto;</kod> /code> dan kemudian tiba-tiba melompat ke ketinggian yang betul. </p>
<p>Bagaimana lagi saya boleh melakukan ini tanpa menggunakan JavaScript? </p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">#child0 {
ketinggian: 0;
limpahan: tersembunyi;
warna latar belakang: #dedede;
-moz-transition: ketinggian 1s mudah;
-webkit-transition: ketinggian 1s mudah;
-o-peralihan: ketinggian 1s mudah;
peralihan: ketinggian 1s mudah;
}
#parent0:hover #child0 {
ketinggian: auto;
}
#child40 {
ketinggian: 40px;
limpahan: tersembunyi;
warna latar belakang: #dedede;
-moz-transition: ketinggian 1s mudah;
-webkit-transition: ketinggian 1s mudah;
-o-peralihan: ketinggian 1s mudah;
peralihan: ketinggian 1s mudah;
}
#parent40:hover #child40 {
ketinggian: auto;
}
h1 {
font-weight: tebal;
}</pre>
<pre class="brush:html;toolbar:false;">Satu-satunya perbezaan antara dua coretan CSS ialah satu mempunyai ketinggian: 0, satu lagi ketinggian: 40.
<hr>
<div id="parent0">
<h1>Tuding saya (ketinggian: 0)</h1>
<div id="child0">Sesetengah kandungan
<br>Sesetengah kandungan
<br>Sesetengah kandungan
<br>Sesetengah kandungan
<br>Sesetengah kandungan
<br>Sesetengah kandungan
<br>
</div>
</div>
<hr>
<div id="parent40">
<h1>Tuding saya (ketinggian: 40)</h1>
<div id="child40">Sesetengah kandungan
<br>Sesetengah kandungan
<br>Sesetengah kandungan
<br>Sesetengah kandungan
<br>Sesetengah kandungan
<br>Sesetengah kandungan
<br>
</div>
</div></pre>
<p><br /></p></ul></ul>
Anda harus menggunakan skalaY.
Saya membuat versi awalan vendor bagi kod di atas pada jsfiddle dan menukar jsfiddle anda untuk menggunakan skalaY dan bukannya ketinggian.
Edit Sesetengah orang tidak suka
scaleY
转换内容的方式。如果这是一个问题,那么我建议使用clip
sebaliknya.Gunakan
max-height
,而不是height
。并将max-height
dalam peralihan dan tetapkan nilai kepada nilai yang lebih besar daripada kotak anda.Lihat jawapan Chris Jordan di sini dalam demo JSFiddle yang lain /stackoverflow.com/a/20226830/18706">