html - 相对于底部的位置 + 容器高度

标签 html css

我正在使用 flexbox 构建下拉菜单。考虑到以下代码,我怎样才能使链接出现在按钮下方,而不是上方?

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <a href="#">
      <div class="dropdown-item">
        Link 1
      </div>
    </a>
    <a href="#">
      <div class="dropdown-item">
        Link 1
      </div>
    </a>
    <a href="#">
      <div class="dropdown-item">
        Link 1
      </div>
    </a>
  </div>
</div>

CSS:

.dropbtn {
  background-color: #34becd;
  color: white;
  padding: 10px;
  font-size: 12px;
  border: none;
  cursor: pointer;
  width: 200px;
}

.dropdown {
  position: relative;
  display: flex;
  flex-direction: column;
}

.dropdown-content {
  display: none;
  position: absolute;
  bottom: 0px;
  width: 200px;
  background-color: #f9f9f9;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

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

.dropdown-content a {
  font-size: 12px;
  color: black;
  padding: 5px 10px;
  text-decoration: none;
}

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

.dropdown-item {
  display: flex;
  justify-content: space-between;
}

JSFiddle here

最佳答案

.dropdown-content 上,您需要将 bottom: 0px; 替换为 top: 100%;

您的 fiddle 中的更新示例:

.dropbtn {
  background-color: #34becd;
  color: white;
  padding: 10px;
  font-size: 12px;
  border: none;
  cursor: pointer;
  width: 200px;
}

.dropdown {
  position: relative;
  display: flex;
  flex-direction: column;
}

.dropdown-content {
  display: none;
  position: absolute;
  top: 100%;
  width: 200px;
  background-color: #f9f9f9;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

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

.dropdown-content a {
  font-size: 12px;
  color: black;
  padding: 5px 10px;
  text-decoration: none;
}

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

.dropdown-item {
  display: flex;
  justify-content: space-between;
}
<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <a href="#">
      <div class="dropdown-item">
        Link 1
      </div>
    </a>
    <a href="#">
      <div class="dropdown-item">
        Link 1
      </div>
    </a>
    <a href="#">
      <div class="dropdown-item">
        Link 1
      </div>
    </a>
  </div>
</div>

关于html - 相对于底部的位置 + 容器高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49476042/

相关文章:

css - 如何在多行中获得 33.33% 宽度的 flex div?

ios - Mac和iOS Safari src播放html5视频的路径要求?

CSS - 等高列?

html - 在行的背景图像上重叠列

javascript - 为什么在我的 Android 上滑动 View 时 JQuery 偏移会发生变化?

javascript - 如何在不清除所有内容的情况下使用 Canvas drawImage() 停止重复图像

html - 尝试将图像居中显示为总视口(viewport)宽度的 33%

html - 在 CSS/HTML 中为不同的屏幕尺寸设置自动高度和宽度

html - CSS 旋转正方形导致高度 flex -- Chrome

javascript - 在没有文本对齐对齐属性的情况下对齐多语言文本