css-transitions - CSS 高度转换与 ul 不工作

标签 css-transitions css

我有以下 CSS:

#cssmenu .has-sub .has-sub:hover > ul {
  height: 76px;
}
#cssmenu .has-sub .has-sub ul {
  height: 0px;
  overflow: hidden;
  position: inherit;
  left: -1px;
  top: -1px;
  background-color: #999;
  transition: height 2s;
  -moz-transition: height 2s; /* Firefox 4 */
  -webkit-transition: height 2s; /* Safari and Chrome */
  -o-transition: height 2s; /* Opera */
}

用这个 html:

<div id="cssmenu">
  <ul>
    <li class="active has-sub"><a href="#"><span>Products</span></a>
      <ul>
        <li class="has-sub"><a href="#"><span>Product 1</span></a>
          <ul>
            <li><a href="#"><span>Sub Product</span></a></li>
            <li class="last"><a href="#"><span>Sub Product</span></a></li>
          </ul>
        </li>
        <li class="has-sub"><a href="#"><span>Product 2</span></a>
           <ul>
            <li><a href="#"><span>Sub Product</span></a></li>
            <li class="last"><a href="#"><span>Sub Product</span></a></li>
          </ul>
        </li>
        <li class="has-sub"><a href="#"><span>Product 3</span></a>
          <ul>
            <li><a href="#"><span>Sub Product</span></a></li>
            <li class="last"><a href="#"><span>Sub Product</span></a></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

当我将鼠标移到产品 1 上时:

enter image description here

enter image description here

过渡只是行不通。我哪里错了?

The whole page is available here

最佳答案

不要隐藏您正在尝试转换的子 ul。将它设置为 display:block(无论如何它的高度都是 0px,所以你看不到它)。

  #cssmenu .has-sub ul ul {
    display: block;
  }

一种更简洁的方法是使用您的原始 ul 选择器更具体并且仅隐藏父 UL,而不是隐藏所有 UL 并将子 UL 切换回显示: block 。不过,您需要添加另一个类来使用这种方法:

  #cssmenu .top-sub-menu > ul {
    display: none;
  }

关于css-transitions - CSS 高度转换与 ul 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15000576/

相关文章:

javascript - 当鼠标悬停在链接上时如何使子链接出现

javascript - 在标准 javascript 中使用 mousedown、mousemove 和 mouseup 触摸事件句柄而不是 jquery

html - 如何使按钮在页面上居中并响应?

jquery - 停止 mightySlider GridView 以随机定位幻灯片

html - 将 X 像素添加到当前位置 CSS

使用显示 :none as well 时禁用 CSS3 转换

css - 如何阻止 CSS 转换在第一次运行时运行?

javascript - 数据百分比属性更改的 CSS 转换

javascript - CSS 过渡不起作用

html - 如何并排获得长文本和按钮