下拉内容显示在砖石布局的右列

问题描述

我正在使用砖石布局来获得两列具有不同高度元素的每一列。在第一列中,我有一个下拉元素,有 3 个条目。当我将鼠标悬停在下拉菜单上时,内容显示在第二列中,而不是第一列中。我认为这是因为我使用的砖石布局。如何更新代码以使下拉列表显示第一列中的内容

代码如下:

.dropdown {
  float: left;
  overflow: hidden;
}

.dropdown-content {
    width: 100%;
  display: none;

  background-color: #f9f9f9;
  min-width: 160px;
  Box-shadow: 0px 8px 16px 0px rgba(0,0.2);
  z-index: 1;
}

.dropdown-content a {
  float: none;
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

.dropdown:hover .dropdown-content {
  display: inline-block;
}

.masonry-wrapper {
    column-count: 2;
    width: 100%;
}

.item {
    float: right;
    width: 100%;
}
<body>

<div class="masonry-wrapper">

<div class="item">
    <h1> Left item </h1>
  </div>
  
  <div class="dropdown">
        <h1> Dropdown </h1>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div> 
  
  <div class="item">
    <h1> Right item </h1>
  </div>
</div>

</body>

解决方法

可能不完全是您想要的,但它可以满足您的要求。删除了“位置:绝对;”并更改了“显示:块;”到“显示:内联块;”。

.dropdown {
  float: left;
  overflow: hidden;
}

.dropdown-content {
    width: 100%;
  display: none;

  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0.2);
  z-index: 1;
}

.dropdown-content a {
  float: none;
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

.dropdown:hover .dropdown-content {
  display: inline-block;
}

.masonry-wrapper {
    column-count: 2;
    width: 100%;
}

.right-item {
    float: right;
    width: 100%;
}
<body>

<div class="masonry-wrapper">

  <div class="dropdown">
        <h1> Dropdown </h1>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div> 
  
  <div class="right-item">
    <h1> Right item </h1>
  </div>
</div>

</body>