CSS弹性盒子 - 不同高度的子元素?

3
我正在尝试使用FlexBox设计子菜单。
FlexBox的默认行为是给所有子元素分配相等的大小。
这会导致在显示子菜单时,所有项目都会扩展。
在使用Flexbox时,有没有什么方法可以避免这种情况发生?
Codepen: https://codepen.io/dsomekh/pen/oeogGq
<style>
.single_tag{
    display:flex;
    flex-direction:column;
    margin-right:6px;
    background-color:#ADD8E6;
    margin-bottom:6px;
    padding:2px;
    border-radius: 5px;
    border:2px solid red;

}

.container{
    display:flex;

    justify-content:center;
}

.dropdown-content {
    display: none;
    flex-direction:column;

}

.dropdown-content_second {
    display: none;
    flex-direction:column;

}

.dropdown-content a:hover {background-color: #f1f1f1}

.single_tag:hover .dropdown-content {
    display: flex;
}

</style>
<html>
<div class="container">
<div class="single_tag">First div
<div class="dropdown-content">
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
  </div>
</div>
<div class="single_tag">Second div
<div class="dropdown-content">
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
  </div>
</div>
<div class="single_tag">Third div
<div class="dropdown-content">
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
  </div>
</div>


</html>
1个回答

16

可以的。

在你的.container上使用align-items: flex-start;即可生效。

.single_tag {
  display: flex;
  flex-direction: column;
  margin-right: 6px;
  background-color: #ADD8E6;
  margin-bottom: 6px;
  padding: 2px;
  border-radius: 5px;
  border: 2px solid red;
}

.container {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.dropdown-content {
  display: none;
  flex-direction: column;
}

.dropdown-content_second {
  display: none;
  flex-direction: column;
}

.dropdown-content a:hover {
  background-color: #f1f1f1
}

.single_tag:hover .dropdown-content {
  display: flex;
}
<div class="container">
  <div class="single_tag">First div
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>
  <div class="single_tag">Second div
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>
  <div class="single_tag">Third div
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>


非常感激! - David Somekh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接