我正在尝试<ul>
使用CSS过渡制作幻灯片。
将<ul>
在开始关闭height: 0;
。悬停时,高度设置为height:auto;
。但是,这导致它只是显示而不是过渡,
如果我从height: 40px;
到进行操作height: auto;
,则它将滑到height: 0;
,然后突然跳到正确的高度。
不使用JavaScript,我还能怎么做?
#child0 {
height: 0;
overflow: hidden;
background-color: #dedede;
-moz-transition: height 1s ease;
-webkit-transition: height 1s ease;
-o-transition: height 1s ease;
transition: height 1s ease;
}
#parent0:hover #child0 {
height: auto;
}
#child40 {
height: 40px;
overflow: hidden;
background-color: #dedede;
-moz-transition: height 1s ease;
-webkit-transition: height 1s ease;
-o-transition: height 1s ease;
transition: height 1s ease;
}
#parent40:hover #child40 {
height: auto;
}
h1 {
font-weight: bold;
}
The only difference between the two snippets of CSS is one has height: 0, the other height: 40.
<hr>
<div id="parent0">
<h1>Hover me (height: 0)</h1>
<div id="child0">Some content
<br>Some content
<br>Some content
<br>Some content
<br>Some content
<br>Some content
<br>
</div>
</div>
<hr>
<div id="parent40">
<h1>Hover me (height: 40)</h1>
<div id="child40">Some content
<br>Some content
<br>Some content
<br>Some content
<br>Some content
<br>Some content
<br>
</div>
</div>
我没有详细阅读所有内容,但是最近遇到了这个问题,我做了以下工作:
这样一来,您可以创建一个div,该div首先显示最高200像素的高度,然后将其悬停,其大小至少应与div的整个内容一样高。Div不会变为3000px,但我要施加的极限是3000px。确保在non:hover上进行过渡,否则可能会得到一些奇怪的渲染。这样,:hover将从非:hover继承。
从px到%或自动的过渡均无效。您需要使用相同的度量单位。这对我来说很好。使用HTML5使其完美。
请记住,总有解决方法……;)
希望有人觉得这有用