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

CSS3过渡不适用于显示属性

从建明
2023-03-14
问题内容

每当我将其悬停在其父元素上时,我一直试图使用css来显示Hidden Div淡入。

到目前为止,我所能做的就是让隐藏的div显示出来,但是到目前为止,还没有轻松的过渡。

这是我的代码:

HTML:

<div id="header">
<div id="button">This is a Button
    <div class="content">
    This is the Hidden Div
    </div>
</div>
</div>

CSS:

#header #button {width:200px; background:#eee}

#header #button:hover > .content {display:block; opacity:1;}

#header #button .content:hover { display:block;}

#header #button .content {

-webkit-transition: all .3s ease .15s;
-moz-transition: all .3s ease .15s;
-o-transition: all .3s ease .15s;
-ms-transition: all .3s ease .15s;
transition: all .3s ease .15s;

    opacity:0;
    clear: both;
    display: none;

    top: -1px;
    left:-160px;
    padding: 8px;
    min-height: 150px;
    border-top: 1px solid #EEEEEE;
    border-left: 1px solid #EEEEEE;
    border-right: 1px solid #EEEEEE;
    border-bottom: 1px solid #EEEEEE;
    -webkit-border-radius: 0px 7px 7px 7px;
    -moz-border-radius: 0px 7px 7px 7px;
    -khtml-border-radius: 0px 7px 7px 7px;
    border-radius: 0px 7px 7px 7px;
    -webkit-box-shadow: 0px 2px 2px #DDDDDD;
    -moz-box-shadow: 0px 2px 2px #DDDDDD;
    box-shadow: 0px 2px 2px #DDDDDD;
    background: #FFF;
}

关于我在做什么错的任何线索吗?当我将鼠标悬停在按钮上时,只是试图为隐藏的内容提供平滑的效果。提前致谢!


问题答案:

display:none;从页面中删除一个块,就好像它从来没有出现过一样。块不能部分显示;它在那儿或不在那里。同样是正确的visibility;您不能指望一个块是hidden定义的一半visible!幸运的是,您可以改用opacity淡入淡出效果。 - 参考作为alternatiiveCSS的解决方案,你可以玩opacityheight而且padding性能达到理想的效果:

#header #button:hover > .content {
    opacity:1;
    height: 150px;
    padding: 8px;    
}

#header #button .content {
    opacity:0;
    height: 0;
    padding: 0 8px;
    overflow: hidden;
    transition: all .3s ease .15s;
}

(由于简洁,省略了供应商前缀。)

#header #button {

  width:200px;

  background:#ddd;

  transition: border-radius .3s ease .15s;

}



#header #button:hover, #header #button > .content {

    border-radius: 0px 0px 7px 7px;

}



#header #button:hover > .content {

  opacity: 1;

  height: 150px;

  padding: 8px;

}



#header #button > .content {

  opacity:0;

  clear: both;

  height: 0;

  padding: 0 8px;

  overflow: hidden;



  -webkit-transition: all .3s ease .15s;

  -moz-transition: all .3s ease .15s;

  -o-transition: all .3s ease .15s;

  -ms-transition: all .3s ease .15s;

  transition: all .3s ease .15s;



  border: 1px solid #ddd;



  -webkit-box-shadow: 0px 2px 2px #ddd;

  -moz-box-shadow: 0px 2px 2px #ddd;

  box-shadow: 0px 2px 2px #ddd;

  background: #FFF;

}



#button > span { display: inline-block; padding: .5em 1em }


<div id="header">

  <div id="button"> <span>This is a Button</span>

    <div class="content">

      This is the Hidden Div

    </div>

  </div>

</div>


 类似资料:
  • .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下拉菜单,但其中包含不同类型的内容。 目前, 似乎CSS 3过渡不适用于’display’属性 ,即,您不能进行从到(或任何组合)的任何过渡。 当有人将鼠标悬停在顶层菜单项之一上时,是否可以通过上述示例使第二层菜单“淡入”? 我知道您可以在属性上使用过渡,但我想不出一种有效使用过渡的方法。 我也尝试过使用高度,但是那不幸地

  • 问题内容: 我有风格的元素 然后,我想在单击后平稳地更改其位置,但是当我添加样式更改时,过渡不会发生,而是元素立即移动。 但是,例如,如果我更改属性,则它会平滑更改。 这可能是什么原因?是否有非“过渡性”的属性? 编辑 :我想我应该提到这不是jQuery,它是另一个库。该代码似乎按预期工作,添加了样式,但是过渡仅在第二种情况下有效? 问题答案: 尝试在CSS中设置默认值(让它知道您要从哪里开始)

  • 问题内容: 元素是否触发了任何事件来检查css3转换是否已开始或结束? 问题答案: W3C CSS过渡草案 CSS Transition的完成将生成相应的DOM事件。将为每个经历过渡的属性触发一个事件。这使内容开发人员可以执行与转换完成同步的操作。 要确定转换何时完成,请为在转换结束时发送的DOM事件设置一个JavaScript事件监听器函数。该事件是WebKitTransitionEvent的实

  • 问题内容: 我对css3 transition属性的渲染速度有疑问。 假设我有许多要素: 使用一个声明将所有这些元素的所有转换作为目标更有效。但是我的问题是:针对每个元素的特定过渡属性,在动画渲染的平滑度和快速度方面是否“更快”?例如: 我这样做的逻辑是,即使一个元素只有一个属性,css的“引擎”是否必须搜索“所有”过渡属性,也可能会减慢速度。 有谁知道是这样吗?谢谢! 问题答案: 是的,使用可能

  • 定义 基于animejs封装的React组件。 图片展示 代码演示 import Anime from 'pile/dist/components/anime' const {CssTransform} = Anime let moveAlone = { targets: '.anime-move-demo-alone', left: '240px', backgroundColo