在标签内的div上悬停转换

时间:2018-05-28 21:49:55

标签: html css

所以我的导航看起来像这样:

  <nav>
    <ul>
      <li>
        <a href="#">About</a>
        <div style="background-color: #c03546;height: 10px;"></div>
      </li>
      <li>
        <a href="#">Companies</a>
        <div style="background-color: #f26d5b;height: 10px;"></div>
      </li>
      <li>
        <a href="#">Brands</a>
        <div style="background-color: #f6ea8c;height: 10px;"></div>
      </li>
    </ul>
  </nav

我需要通过css只应用一种风格,当我将鼠标悬停在它上面时,会显示相应的div(div最初未显示)PLUS - 我需要它们逐渐显示,所以我需要有一个转换持续时间。

到目前为止,我设法让div在悬停在标签上时显示,但我在添加转换持续时间方面遇到了麻烦,因为它似乎无法正常工作

  nav {
    position: fixed;
    background-color: #fafafa;
    top: 0;
    width: 100%;
    border-bottom: 1px solid #cacaca;
  }

  nav li {
    display: inline-block;
    padding: 0 1em;
  }

  nav li a {
    color: #939393;
    font-weight: 400;
    transition-duration: 3s;
  }

  nav li div{
    display: none;
    transition-duration: 3s;
  }

  nav li a:hover +div{
    display: block;
  }

1 个答案:

答案 0 :(得分:1)

无法为显示属性设置动画。

但您可以使用opacity属性:

&#13;
&#13;
h_orig.transform_values { |v| [*v].count }
h_orig.transform_values { |v| [*v].min }
&#13;
nav {
  position: fixed;
  background-color: #fafafa;
  top: 0;
  width: 100%;
  border-bottom: 1px solid #cacaca;
}

nav li {
  display: inline-block;
  padding: 0 1em;
}

nav li a {
  color: #939393;
  font-weight: 400;
  transition-duration: 3s;
}

nav li div{
  opacity: 0;
  transition-duration: 3s;
}

nav li a:hover +div{
  opacity: 1;
}
&#13;
&#13;
&#13;