【问题标题】:Transform height of child div when hover on parent div悬停在父 div 上时变换子 div 的高度
【发布时间】:2017-07-11 16:57:02
【问题描述】:

当悬停.wrapper 时,我想将我的.bartransform height 转为3px。我知道我必须使用transitiontransform,但我不知道如何通过悬停他的父母来transform 我的孩子div。目前,我transform 只是我的父母div(原因很清楚)。如何通过将我的父母div 悬停在我的孩子的transform height 上(应该是在.wrapper 底部向上/向下的条形)?请注意,父 div 不应该改变他的尺寸,只有孩子!

.wrapper {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 200px;
  height: 100px;
  background-color: lightgreen;
  transition: all 1s ease-in-out;
}

.wrapper:hover {
  /*ON HOVER WRAPPER TRANSFORM HEIGHT OF BAR TO 3px*/
  transform: scale(2);
  cursor: pointer;
}

.bar {
  width: 100%;
  height: 0px;
  background-color: blue;
}

.bar:hover {}
<div class="wrapper">
  <div class="bar"></div>
</div>

【问题讨论】:

    标签: html css css-transitions css-transforms


    【解决方案1】:

    使用子选择器.wrapper:hover&gt;.bar:

    .wrapper {
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      width: 200px;
      height: 100px;
      background-color: lightgreen;
      transition: all 1s ease-in-out;
    }
    
    .wrapper:hover {
      cursor: pointer;
    }
    
    .bar {
      width: 100%;
      height: 0px;
      background-color: blue;
      transition: height 200ms ease-in-out;
    }
    
    .wrapper:hover>.bar {
      height: 3px;
    }
    <div class="wrapper">
      <div class="bar"></div>
    </div>

    【讨论】:

    • 很好,谢谢。我已经编辑了你的答案,因为父 div 不应该转换,只是子 div。所以我从 .wrapper:hover 中删除了转换。我会把它标记为正确答案,干杯伙伴。
    • 欢迎。您应该从问题中删除.wrapper 转换代码。
    【解决方案2】:

    使用这个 CSS 选择器 &gt; 来做到这一点,

    .wrapper {
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      width: 200px;
      height: 100px;
      background-color: lightgreen;
      transition: all 1s ease-in-out;
    }
    
    
    /*.wrapper:hover {
      transform: scale(2);
      cursor: pointer;
    }*/
    
    .bar {
      width: 100%;
      height: 0px;
      background-color: blue;
      transition: 0.6s ease;
    }
    
    .wrapper:hover > .bar {
      height: 10px;
    }
    <div class="wrapper">
      <div class="bar"></div>
    </div>

    【讨论】:

    • @MrBuggy 您可以使用这个 css 选择器 > 如上所述选择子元素,甚至可以删除该符号 > 并在它们之间保留空白以选择子元素,即 .wrapper:hover .bar或 .wrapper:hover > .bar
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 2013-05-04
    • 2011-11-28
    相关资源
    最近更新 更多