当前位置: 首页 > 面试题库 >

您可以使用CSS3从height:0过渡到可变的内容高度吗?

西门嘉石
2023-03-14
问题内容

我正在尝试<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>

问题答案:

max-height在过渡中使用,而不是height。并设置一个max-height比您的盒子所能获得的更大的价值。

#menu #list {

    max-height: 0;

    transition: max-height 0.15s ease-out;

    overflow: hidden;

    background: #d5d5d5;

}



#menu:hover #list {

    max-height: 500px;

    transition: max-height 0.25s ease-in;

}


<div id="menu">

    <a>hover me</a>

    <ul id="list">

        <!-- Create a bunch, or not a bunch, of li's to see the timing. -->

        <li>item</li>

        <li>item</li>

        <li>item</li>

        <li>item</li>

        <li>item</li>

    </ul>

</div>


 类似资料:
  • 本文向大家介绍CSS3中的transition是否可以过渡opacity和display?相关面试题,主要包含被问及CSS3中的transition是否可以过渡opacity和display?时的应答技巧和注意事项,需要的朋友参考一下 transition可以过渡opacity, 但不可过渡display. 一般情况下线性属性如opacity都是可以被transition所过渡的, 非线性或者离散

  • .animated_div { width:60px; height:40px; background:#92B901; color:#ffffff; position:absolute; font-weight:bold; font-size:15px; padding:10px; float:left; margin:5px; -webkit-transition:-webkit-transf

  • 问题内容: 我正在尝试在CSS上的缩略图上进行悬停过渡,以便在悬停时淡入背景渐变。过渡不起作用,但是如果我简单地将其更改为一个值,则可以正常工作。不支持渐变吗?我也尝试过使用图像,它也不会转换图像。 我知道这是有可能的,就像在另一篇文章中有人做的那样,但我不知道该怎么做。任何帮助>以下是一些可使用的CSS: 问题答案: 渐变尚不支持过渡(尽管当前规范说,它们应支持渐变,例如通过插值进行渐变过渡)。

  • Desktop Using any of the Terrain editing tools is very simple. You will literally paint the Terrain from within the Scene View. For the height tools and all others, you just have to select the tool, a

  • 问题内容: 我正在尝试制作一个带有固定标题和可滚动内容区域的网页。当集管具有已知高度时,这是微不足道的,但是我正在努力寻找集管处于流动状态的解决方案。 我想要的布局是: 其中“头”是其内容所需的高度,“内容”没有最小高度,但在变为可滚动状态之前将达到视口底部的最大高度。 这些天来使用纯CSS可能吗?我的目标是IE8 +。 问题答案: 假设您所说的“固定” ,我认为在纯CSS中是不可能的,因为该元素

  • 过渡可以通过 Vue 的组件系统实现复用。要创建一个可复用过渡组件,你需要做的就是将<transition>或者<transition-group>作为根组件,然后将任何子组件放置在其中就可以了。 使用 template 的简单例子: Vue.component('my-special-transition', { template: '\ <transition\ na