html - 使用过渡打开一个简单的下拉菜单我有基础但不能适应我的设计

标签 html css transition

我需要在我正在处理的页面上保留一些不动产,所以我只想将鼠标悬停在主题上,然后让子主题可以从“下拉菜单”(实际上是一个 div缓出) div.

这是我想要的效果的 fiddle :

https://jsfiddle.net/170z6pj1/

但是我似乎无法理解如何让它与此一起工作,因此我希望文本“如何...”成为导致缓出的触发器:

https://jsfiddle.net/170z6pj1/3/

我已经尝试了各种方法来尝试将 id="menu"放到“How to...”或“titleB”div 中,但如果我那样做,它们永远不会起作用。我意识到我的基本 CSS 不正确,无法正常工作,但我无法全神贯注于我需要更改的内容 - 第一次尝试过渡。

感谢所有回复。

附注据我所知,我必须使用“最大高度解决方法”来让它动态调整到列表项的正确长度。

HTML: 

<div id="titleA">
  <div id="titleB"></div>How to...</div>
<div id="menu">
  <a>Hover to expand</a>
  <ul id="list">
    <li>How to book a meeting room</li>
    <li>How to book catering</li>
    <li>How to report extra cleaning requirement</li>
    <li>How to report a fault</li>
    <li>How to report a H&amp;S issue</li>
    <li>How to book a hot desk</li>
    <li>What happens if I get locked in</li>
    <li>How to request consumables - for kitchens, photocopiers, etc.</li>
    <li>Out of hours issues affecting buildings / How to make contact in an emergency</li>
    <li>Recycling guide</li>
    <li>Complaints and feedback</li>
  </ul>
</div>

CSS: 

#menu #list {
  max-height: 0;
  transition: max-height 1.5s ease-out;
  overflow: hidden;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 15px;
  width: 99%;
  border: 1px solid #c8ced0;
  padding: 5px;
  font-size: 14px;
  display: inline-block;
}

#menu:hover #list {
  max-height: 500px;
  transition: max-height 1.5s ease-in;
}

#titleA {
  position: relative;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  background: #5bc0de;
  padding-top: 14px;
  padding-left: 22px;
  height: 54px;
  width: calc(100% - 35px);
  margin-bottom: 5px;
  margin-top: 19px;
  font-size: 25px;
  color: white;
  font-family: 'Open Sans';
  font-weight: bold;


}

#titleB {
  position: absolute;
  top: 0px;
  right: -20px;
  height: 100%;
  width: 50px;
  background: #5bc0de;
  transform: skew(30deg);
}

经过一番尝试,我通过删除“非必需品”,离我想要的设计又近了一步。不过,仍在寻找一种解决方案来保留我的原始设计(第二 fiddle )!

https://jsfiddle.net/170z6pj1/4/

最佳答案

是的,这是因为您将填充和边框应用于:ul id="list"

关于html - 使用过渡打开一个简单的下拉菜单我有基础但不能适应我的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38636559/

相关文章:

html - 在 TiddlyWiki 5 中,如何防止代码块内的文本换行?

android - 如何在布局转换期间为操作栏设置动画?

javascript - jquery 和 CSS3 转换

css - 过渡扩展菜单 div 在导航栏中扩展,但在调整窗口大小时将其他菜单 div 向下推

javascript - 给一串html添加粗体标签

javascript - extjs 4.2.1 - 围绕组件包装布局容器

javascript - 单击时向图像映射部分添加颜色轮廓(jQuery)

html - 我怎样才能使指针事件通过元素而不禁用它们?

javascript - 未捕获的 TypeError : check. addEventListener 不是函数

html - Chrome 输入类型 ="date"导致奇怪的布局问题